From ef328caea32269e5f47cbcb11b704fcc3c4581a0 Mon Sep 17 00:00:00 2001 From: WofWca Date: Mon, 28 Oct 2024 16:31:53 +0400 Subject: [PATCH] refactor: `__internal_jump_to_message` params Follow-up to the previous commit. --- .../frontend/src/components/RuntimeAdapter.tsx | 2 +- .../src/components/message/MessageList.tsx | 10 +++++----- packages/frontend/src/contexts/ChatContext.tsx | 6 +++++- packages/frontend/src/global.d.ts | 8 ++++---- packages/frontend/src/hooks/chat/useMessage.ts | 6 +++++- packages/frontend/src/stores/messagelist.ts | 15 +++++++++++---- 6 files changed, 31 insertions(+), 16 deletions(-) diff --git a/packages/frontend/src/components/RuntimeAdapter.tsx b/packages/frontend/src/components/RuntimeAdapter.tsx index 77f979bf22..4f1c9fbe7e 100644 --- a/packages/frontend/src/components/RuntimeAdapter.tsx +++ b/packages/frontend/src/components/RuntimeAdapter.tsx @@ -55,7 +55,7 @@ export default function RuntimeAdapter({ clearNotificationsForChat(notificationAccountId, chatId) } if (msgId) { - window.__internal_jump_to_message?.(msgId) + window.__internal_jump_to_message?.({ msgId }) } } ) diff --git a/packages/frontend/src/components/message/MessageList.tsx b/packages/frontend/src/components/message/MessageList.tsx index da960021a2..7b0c3ff8cf 100644 --- a/packages/frontend/src/components/message/MessageList.tsx +++ b/packages/frontend/src/components/message/MessageList.tsx @@ -796,11 +796,11 @@ function JumpDownButton({ jumpToMessageStack, }: { countUnreadMessages: number - jumpToMessage: ( - msgId: number | undefined, - highlight?: boolean, + jumpToMessage: (params: { + msgId: number | undefined + highlight?: boolean addMessageIdToStack?: undefined | number - ) => Promise + }) => Promise jumpToMessageStack: number[] }) { let countToShow: string = countUnreadMessages.toString() @@ -823,7 +823,7 @@ function JumpDownButton({
{ - jumpToMessage(undefined, true) + jumpToMessage({ msgId: undefined, highlight: true }) }} >
void) __internal_jump_to_message: | undefined - | (( - msgId: number | undefined, - highlight?: boolean, + | ((params: { + msgId: number | undefined + highlight?: boolean addMessageIdToStack?: undefined | number - ) => Promise) + }) => Promise) __updateAccountListSidebar: (() => void) | undefined } } diff --git a/packages/frontend/src/hooks/chat/useMessage.ts b/packages/frontend/src/hooks/chat/useMessage.ts index 3dda9fd4f2..2339bd7ab9 100644 --- a/packages/frontend/src/hooks/chat/useMessage.ts +++ b/packages/frontend/src/hooks/chat/useMessage.ts @@ -70,7 +70,11 @@ export default function useMessage() { // Workaround to actual jump to message in regarding mounted component view setTimeout(() => { - window.__internal_jump_to_message?.(msgId, highlight, msgParentId) + window.__internal_jump_to_message?.({ + msgId, + highlight, + addMessageIdToStack: msgParentId, + }) }, 0) }, [chatId, selectChat, setChatView] diff --git a/packages/frontend/src/stores/messagelist.ts b/packages/frontend/src/stores/messagelist.ts index 188c609e30..01aeee5fa0 100644 --- a/packages/frontend/src/stores/messagelist.ts +++ b/packages/frontend/src/stores/messagelist.ts @@ -346,7 +346,10 @@ class MessageListStore extends Store { if (firstUnreadMsgId !== null) { setTimeout(async () => { const chat = await chatP - this.effect.jumpToMessage(firstUnreadMsgId, false) + this.effect.jumpToMessage({ + msgId: firstUnreadMsgId, + highlight: false, + }) ActionEmitter.emitAction( chat.archived ? KeybindAction.ChatList_SwitchToArchiveView @@ -403,11 +406,15 @@ class MessageListStore extends Store { */ jumpToMessage: this.scheduler.lockedQueuedEffect( 'scroll', - async ( - jumpToMessageId: number | undefined, + async ({ + msgId: jumpToMessageId, highlight = true, + addMessageIdToStack, + }: { + msgId: number | undefined + highlight?: boolean addMessageIdToStack?: undefined | number - ) => { + }) => { const startTime = performance.now() this.log.debug('jumpToMessage with messageId: ', jumpToMessageId)