From 522a1beac15584c957161f563232a538abc0ef90 Mon Sep 17 00:00:00 2001 From: danney-chun <63285271+danney-chun@users.noreply.github.com> Date: Fri, 28 Nov 2025 11:36:20 +0900 Subject: [PATCH] fixed a bug where scrollToMessage --- src/modules/App/DesktopLayout.tsx | 2 +- src/modules/App/types.ts | 2 +- src/modules/GroupChannel/context/hooks/useGroupChannel.ts | 6 +++--- src/modules/MessageSearch/context/hooks/useMessageSearch.ts | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/modules/App/DesktopLayout.tsx b/src/modules/App/DesktopLayout.tsx index d68116ce0..263916639 100644 --- a/src/modules/App/DesktopLayout.tsx +++ b/src/modules/App/DesktopLayout.tsx @@ -84,7 +84,7 @@ export const DesktopLayout: React.FC = (props: DesktopLayout onSearchClick: () => { setShowSettings(false); setShowThread(false); - setShowSearch(!showSearch); + setShowSearch((prev: boolean) => { return !prev; }); }, onReplyInThread: onClickThreadReply, onQuoteMessageClick: ({ message }) => { diff --git a/src/modules/App/types.ts b/src/modules/App/types.ts index 7d7db6baf..ba67611de 100644 --- a/src/modules/App/types.ts +++ b/src/modules/App/types.ts @@ -43,7 +43,7 @@ export interface DesktopLayoutProps extends AppLayoutProps, SubLayoutCommonProps showSettings: boolean; setShowSettings: React.Dispatch; showSearch: boolean; - setShowSearch: React.Dispatch; + setShowSearch: React.Dispatch>; // thread showThread: boolean; setShowThread: React.Dispatch; diff --git a/src/modules/GroupChannel/context/hooks/useGroupChannel.ts b/src/modules/GroupChannel/context/hooks/useGroupChannel.ts index b57f8a538..f94c116de 100644 --- a/src/modules/GroupChannel/context/hooks/useGroupChannel.ts +++ b/src/modules/GroupChannel/context/hooks/useGroupChannel.ts @@ -126,13 +126,13 @@ export const useGroupChannel = () => { if (message) { const topOffset = getMessageTopOffset(message.createdAt); - if (topOffset) state.scrollPubSub.publish('scroll', { top: topOffset, animated: scrollAnimated }); + if (topOffset !== null) state.scrollPubSub.publish('scroll', { top: topOffset, animated: scrollAnimated }); if (messageFocusAnimated ?? true) setAnimatedMessageId(messageId); } else if (state.initialized) { await state.resetWithStartingPoint(createdAt); setTimeout(() => { const topOffset = getMessageTopOffset(createdAt); - if (topOffset) { + if (topOffset !== null) { state.scrollPubSub.publish('scroll', { top: topOffset, lazy: false, @@ -140,7 +140,7 @@ export const useGroupChannel = () => { }); } if (messageFocusAnimated ?? true) setAnimatedMessageId(messageId); - }); + }, 500); } clickHandler.activate(); }, [ diff --git a/src/modules/MessageSearch/context/hooks/useMessageSearch.ts b/src/modules/MessageSearch/context/hooks/useMessageSearch.ts index d877876e5..b7305d982 100644 --- a/src/modules/MessageSearch/context/hooks/useMessageSearch.ts +++ b/src/modules/MessageSearch/context/hooks/useMessageSearch.ts @@ -60,7 +60,7 @@ const useMessageSearch = () => { store.setState(state => ({ ...state, allMessages: [] })); }, [store]); - const setSelectedMessageId = (messageId: number) => useCallback(() => { + const setSelectedMessageId = useCallback((messageId: number) => { store.setState(state => ({ ...state, selectedMessageId: messageId })); }, [store]);