From 18aeb7abe7a6856569e1a8f6e4044d095bc24464 Mon Sep 17 00:00:00 2001 From: Alexander Zinchuk Date: Sat, 15 May 2021 02:46:05 +0300 Subject: [PATCH] Pinned Message: Fix updating after pin/unpin --- src/components/middle/MiddleHeader.tsx | 9 ++------- src/modules/actions/apiUpdaters/messages.ts | 2 +- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/components/middle/MiddleHeader.tsx b/src/components/middle/MiddleHeader.tsx index 9227ff6a0..0195ed0bf 100644 --- a/src/components/middle/MiddleHeader.tsx +++ b/src/components/middle/MiddleHeader.tsx @@ -134,15 +134,10 @@ const MiddleHeader: FC = ({ } }, [chatId, loadPinnedMessages, lastSyncTime, threadId]); - // Modify pinned index after unpinning - useEffect(() => { - setPinnedMessageIndex(pinnedMessagesCount ? cycleRestrict(pinnedMessagesCount, pinnedMessageIndex) : -1); - }, [pinnedMessagesCount, pinnedMessageIndex]); - - // Reset pinned index when switching chats + // Reset pinned index when switching chats and pinning/unpinning useEffect(() => { setPinnedMessageIndex(0); - }, [chatId]); + }, [pinnedMessageIds]); useEnsureMessage(chatId, pinnedMessageId, pinnedMessage); diff --git a/src/modules/actions/apiUpdaters/messages.ts b/src/modules/actions/apiUpdaters/messages.ts index accef32dc..406e1e099 100644 --- a/src/modules/actions/apiUpdaters/messages.ts +++ b/src/modules/actions/apiUpdaters/messages.ts @@ -201,7 +201,7 @@ addReducer('apiUpdate', (global, actions, update: ApiUpdate) => { const currentPinnedIds = selectPinnedIds(global, chatId) || []; const newPinnedIds = isPinned - ? [...currentPinnedIds, ...messageIds] + ? [...currentPinnedIds, ...messageIds].sort((a, b) => b - a) : currentPinnedIds.filter((id) => !messageIds.includes(id)); setGlobal(replaceThreadParam(global, chatId, MAIN_THREAD_ID, 'pinnedIds', newPinnedIds));