diff --git a/VERSION.properties b/VERSION.properties index b39284dc..4e7b8be6 100644 --- a/VERSION.properties +++ b/VERSION.properties @@ -1,2 +1,2 @@ -client.version=1.5.33 +client.version=1.5.34 server.version=1.4.10 diff --git a/shine-UI/img/shine-logo-transparent-final.png b/shine-UI/img/shine-logo-transparent-final.png index be1831a5..a4b44ec9 100644 Binary files a/shine-UI/img/shine-logo-transparent-final.png and b/shine-UI/img/shine-logo-transparent-final.png differ diff --git a/shine-UI/img/shine-logo-transparent-final_big.png b/shine-UI/img/shine-logo-transparent-final_big.png new file mode 100644 index 00000000..be1831a5 Binary files /dev/null and b/shine-UI/img/shine-logo-transparent-final_big.png differ diff --git a/shine-UI/js/pages/channel-view.js b/shine-UI/js/pages/channel-view.js index 699c441b..3ed0af61 100644 --- a/shine-UI/js/pages/channel-view.js +++ b/shine-UI/js/pages/channel-view.js @@ -33,6 +33,7 @@ import { makeShineMessageRoute, } from '../services/shine-routes.js'; import { buildArweaveDataUrl } from '../services/arweave-file-service.js'; +import { parseDmTechBlocks } from '../services/dm-tech-blocks.js'; export const pageMeta = { id: 'channel-view', title: 'Канал' }; const CHANNEL_TYPE_STORIES = 0; @@ -1712,7 +1713,8 @@ function renderPostCard(post, { const targetPreview = document.createElement('div'); targetPreview.className = 'channel-message-target-preview'; const targetType = getChannelMessageTypeMeta(post.targetMsgSubType)?.label || 'Материал'; - const targetText = String(post.targetText || '').trim(); + const targetParsed = parseDmTechBlocks(String(post.targetText || '').trim()); + const targetText = String(targetParsed.displayText || targetParsed.visibleText || '').trim(); const targetAuthor = String(post.targetAuthorLogin || '').trim(); targetPreview.innerHTML = ` ${escapeHtml(targetType)} diff --git a/shine-UI/js/pages/chat-view.js b/shine-UI/js/pages/chat-view.js index ec9643ae..5f469c6d 100644 --- a/shine-UI/js/pages/chat-view.js +++ b/shine-UI/js/pages/chat-view.js @@ -1022,10 +1022,13 @@ export function render({ navigate, route, chrome }) { const viewportHeight = Math.max(viewport?.height || 0, window.innerHeight || 0); const viewportShrunk = baseViewportHeight - viewportHeight > 120; const keyboardInset = viewportShrunk - ? Math.max(0, (window.innerHeight || 0) - viewportHeight - Number(viewport?.offsetTop || 0)) + ? Math.max(0, baseViewportHeight - viewportHeight) : 0; setKeyboardInset(keyboardInset); setChatKeyboardOpen(inputFocused && viewportShrunk); + if (viewportShrunk && window.scrollY !== 0) { + window.scrollTo(0, 0); + } if (inputFocused) { window.requestAnimationFrame(() => scrollToLatestMessage(log)); } diff --git a/shine-UI/styles/components.css b/shine-UI/styles/components.css index 66b479df..7df32a6a 100644 --- a/shine-UI/styles/components.css +++ b/shine-UI/styles/components.css @@ -538,7 +538,7 @@ .initial-splash__logo-wrap { position: relative; isolation: isolate; - width: clamp(232px, 59vw, 284px); + width: clamp(156px, 42vw, 208px); aspect-ratio: 1; } @@ -565,9 +565,9 @@ } .initial-splash__brand { - margin-top: -4px; + margin-top: -2px; color: #f4ebdd; - font-size: clamp(42px, 9vw, 56px); + font-size: clamp(34px, 7vw, 46px); font-weight: 500; line-height: 1; text-shadow: 0 3px 22px rgba(210, 168, 90, 0.2); diff --git a/shine-UI/styles/layout.css b/shine-UI/styles/layout.css index a989f3b5..9f33842b 100644 --- a/shine-UI/styles/layout.css +++ b/shine-UI/styles/layout.css @@ -4,6 +4,7 @@ body { background: #05070A; min-height: 100vh; position: relative; + overflow: hidden; } body::before { @@ -22,8 +23,12 @@ body::before { .app-shell { width: min(100vw, 430px); - height: 100dvh; - position: relative; + height: 100vh; + height: 100svh; + position: fixed; + top: 0; + left: 50%; + transform: translateX(-50%); --call-minimized-bar-height: 0px; --topbar-height: 0px; --composer-height: 0px; @@ -111,22 +116,16 @@ body::before { } body.chat-keyboard-open .screen-content { - bottom: calc(var(--composer-height, 0px) + var(--keyboard-offset, 0px)); + bottom: calc(var(--composer-height, 0px) + max(var(--toolbar-height, 78px), var(--keyboard-offset, 0px))); padding-bottom: calc(14px + env(safe-area-inset-bottom)); } body.chat-keyboard-open .composer-slot { - bottom: var(--keyboard-offset, 0px); + bottom: max(var(--toolbar-height, 78px), var(--keyboard-offset, 0px)); padding-bottom: calc(8px + env(safe-area-inset-bottom)); } body.chat-keyboard-open .toolbar-slot { - opacity: 0; - pointer-events: none; - transform: translateY(calc(100% + env(safe-area-inset-bottom))); -} - -body.chat-keyboard-open.chat-toolbar-persistent .toolbar-slot { opacity: 1; pointer-events: auto; transform: none; @@ -173,8 +172,8 @@ body.chat-keyboard-open.chat-toolbar-persistent .toolbar-slot { @media (min-width: 900px) { .app-shell { - margin: 16px 0; - height: calc(100dvh - 32px); + top: 16px; + height: calc(100svh - 32px); border-radius: 24px; } }