Middle Header: Fix animation when hiding pinned messages (#1446)
This commit is contained in:
parent
c06e0ecc79
commit
20cf5ecdda
@ -138,7 +138,8 @@ const MiddleHeader: FC<OwnProps & StateProps & DispatchProps> = ({
|
|||||||
const [pinnedMessageIndex, setPinnedMessageIndex] = useState(0);
|
const [pinnedMessageIndex, setPinnedMessageIndex] = useState(0);
|
||||||
const pinnedMessageId = Array.isArray(pinnedMessageIds) ? pinnedMessageIds[pinnedMessageIndex] : pinnedMessageIds;
|
const pinnedMessageId = Array.isArray(pinnedMessageIds) ? pinnedMessageIds[pinnedMessageIndex] : pinnedMessageIds;
|
||||||
const pinnedMessage = messagesById && pinnedMessageId ? messagesById[pinnedMessageId] : undefined;
|
const pinnedMessage = messagesById && pinnedMessageId ? messagesById[pinnedMessageId] : undefined;
|
||||||
const pinnedMessagesCount = Array.isArray(pinnedMessageIds) ? pinnedMessageIds.length : (pinnedMessageIds ? 1 : 0);
|
const pinnedMessagesCount = Array.isArray(pinnedMessageIds)
|
||||||
|
? pinnedMessageIds.length : (pinnedMessageIds ? 1 : undefined);
|
||||||
const chatTitleLength = chat && getChatTitle(lang, chat).length;
|
const chatTitleLength = chat && getChatTitle(lang, chat).length;
|
||||||
const topMessageTitle = topMessageSender ? getSenderTitle(lang, topMessageSender) : undefined;
|
const topMessageTitle = topMessageSender ? getSenderTitle(lang, topMessageSender) : undefined;
|
||||||
|
|
||||||
@ -176,7 +177,7 @@ const MiddleHeader: FC<OwnProps & StateProps & DispatchProps> = ({
|
|||||||
if (pinnedMessage) {
|
if (pinnedMessage) {
|
||||||
focusMessage({ chatId: pinnedMessage.chatId, threadId, messageId: pinnedMessage.id });
|
focusMessage({ chatId: pinnedMessage.chatId, threadId, messageId: pinnedMessage.id });
|
||||||
|
|
||||||
const newIndex = cycleRestrict(pinnedMessagesCount, pinnedMessageIndex + 1);
|
const newIndex = cycleRestrict(pinnedMessagesCount || 1, pinnedMessageIndex + 1);
|
||||||
setPinnedMessageIndex(newIndex);
|
setPinnedMessageIndex(newIndex);
|
||||||
}
|
}
|
||||||
}, [pinnedMessage, focusMessage, threadId, pinnedMessagesCount, pinnedMessageIndex]);
|
}, [pinnedMessage, focusMessage, threadId, pinnedMessagesCount, pinnedMessageIndex]);
|
||||||
@ -255,7 +256,9 @@ const MiddleHeader: FC<OwnProps & StateProps & DispatchProps> = ({
|
|||||||
transitionClassNames: pinnedMessageClassNames,
|
transitionClassNames: pinnedMessageClassNames,
|
||||||
} = useShowTransition(pinnedMessage && !shouldRenderAudioPlayer);
|
} = useShowTransition(pinnedMessage && !shouldRenderAudioPlayer);
|
||||||
|
|
||||||
const renderingPinnedMessage = useCurrentOrPrev(pinnedMessage);
|
const renderingPinnedMessage = useCurrentOrPrev(pinnedMessage, true);
|
||||||
|
const renderingPinnedMessagesCount = useCurrentOrPrev(pinnedMessagesCount, true);
|
||||||
|
const renderingCanUnpin = useCurrentOrPrev(canUnpin, true);
|
||||||
const renderingPinnedMessageTitle = useCurrentOrPrev(topMessageTitle);
|
const renderingPinnedMessageTitle = useCurrentOrPrev(topMessageTitle);
|
||||||
|
|
||||||
const canRevealTools = (shouldRenderPinnedMessage && renderingPinnedMessage)
|
const canRevealTools = (shouldRenderPinnedMessage && renderingPinnedMessage)
|
||||||
@ -397,11 +400,11 @@ const MiddleHeader: FC<OwnProps & StateProps & DispatchProps> = ({
|
|||||||
<HeaderPinnedMessage
|
<HeaderPinnedMessage
|
||||||
key={chatId}
|
key={chatId}
|
||||||
message={renderingPinnedMessage}
|
message={renderingPinnedMessage}
|
||||||
count={pinnedMessagesCount}
|
count={renderingPinnedMessagesCount || 0}
|
||||||
index={pinnedMessageIndex}
|
index={pinnedMessageIndex}
|
||||||
customTitle={renderingPinnedMessageTitle}
|
customTitle={renderingPinnedMessageTitle}
|
||||||
className={pinnedMessageClassNames}
|
className={pinnedMessageClassNames}
|
||||||
onUnpinMessage={canUnpin ? handleUnpinMessage : undefined}
|
onUnpinMessage={renderingCanUnpin ? handleUnpinMessage : undefined}
|
||||||
onClick={handlePinnedMessageClick}
|
onClick={handlePinnedMessageClick}
|
||||||
onAllPinnedClick={handleAllPinnedClick}
|
onAllPinnedClick={handleAllPinnedClick}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user