From 3643bea2fc1b1b248cc88d05792535cc485282e7 Mon Sep 17 00:00:00 2001 From: lizerk Date: Thu, 6 Aug 2026 09:52:17 +0300 Subject: [PATCH] fix chat workspace scrolling and layout --- frontend/src/app/messages/[chatId]/page.tsx | 107 +++++++----------- frontend/src/app/tasks/page.tsx | 2 +- .../src/components/ScrollableMessageList.tsx | 15 ++- .../components/messages/ChatMessageItem.tsx | 12 +- .../messages/MessagesFocusSidebar.tsx | 2 +- 5 files changed, 66 insertions(+), 72 deletions(-) diff --git a/frontend/src/app/messages/[chatId]/page.tsx b/frontend/src/app/messages/[chatId]/page.tsx index 4149e686..5d3bf140 100644 --- a/frontend/src/app/messages/[chatId]/page.tsx +++ b/frontend/src/app/messages/[chatId]/page.tsx @@ -1328,29 +1328,6 @@ function MessageDialogPageContent() { return () => vv.removeEventListener("resize", onResize); }, []); - // Redirect wheel events outside chat container into it - useEffect(() => { - const onWheel = (e: WheelEvent) => { - if (e.defaultPrevented || mediaPreview) return; - const c = messagesViewportRef.current; - if (!c?.containerRef?.current) return; - const v = c.containerRef.current; - const t = e.target as HTMLElement | null; - if ( - !t || - v.contains(t) || - t.closest("[data-overlay-root='true'], [role='dialog'], [aria-modal='true']") || - t.closest("textarea,input,button,a,video,audio,[contenteditable='true']") - ) { - return; - } - e.preventDefault(); - v.scrollTop += e.deltaY; - }; - window.addEventListener("wheel", onWheel, { passive: false }); - return () => window.removeEventListener("wheel", onWheel); - }, [mediaPreview]); - /* ────────────────────────────────────────────────────── * RENDER * ────────────────────────────────────────────────────── */ @@ -1445,7 +1422,7 @@ function MessageDialogPageContent() { ) : displayMessages.length === 0 ? (

Пока нет сообщений. Напишите первым.

) : ( -
+
{cm.loadingOlder ?

Подгружаем старые сообщения...

: null} {displayMessages.map((message, index) => { const replyToId = getReplyToId(message); @@ -1515,11 +1492,11 @@ function MessageDialogPageContent() { {/* Scroll-to-bottom button */} {scroll.showScrollToBottom && ( -
+