Middle Column / Pinned: Fix disappearing albums (#2943)

This commit is contained in:
Alexander Zinchuk 2023-04-06 08:21:10 +02:00
parent ae7662a152
commit a2e21994d0
2 changed files with 5 additions and 3 deletions

View File

@ -49,13 +49,14 @@ export default function useMessageObservers(
const { dataset } = target as HTMLDivElement; const { dataset } = target as HTMLDivElement;
const messageId = Number(dataset.lastMessageId || dataset.messageId); const messageId = Number(dataset.lastMessageId || dataset.messageId);
const albumMainId = dataset.albumMainId ? Number(dataset.albumMainId) : undefined;
if (!isIntersecting) { if (!isIntersecting) {
if (dataset.isPinned) { if (dataset.isPinned) {
if (rootBounds && boundingClientRect.bottom < rootBounds.top) { if (rootBounds && boundingClientRect.bottom < rootBounds.top) {
isReversed = true; isReversed = true;
} }
viewportPinnedIdsToRemove.push(messageId); viewportPinnedIdsToRemove.push(albumMainId || messageId);
} }
return; return;
} }
@ -73,7 +74,7 @@ export default function useMessageObservers(
} }
if (dataset.isPinned) { if (dataset.isPinned) {
viewportPinnedIdsToAdd.push(messageId); viewportPinnedIdsToAdd.push(albumMainId || messageId);
} }
}); });

View File

@ -413,7 +413,7 @@ const Message: FC<OwnProps & StateProps> = ({
useEffect(() => { useEffect(() => {
if (!isPinned) return undefined; if (!isPinned) return undefined;
const id = album ? album.messages[album.messages.length - 1].id : messageId; const id = album ? album.mainMessage.id : messageId;
return () => { return () => {
onPinnedIntersectionChange({ viewportPinnedIdsToRemove: [id], isUnmount: true }); onPinnedIntersectionChange({ viewportPinnedIdsToRemove: [id], isUnmount: true });
@ -1188,6 +1188,7 @@ const Message: FC<OwnProps & StateProps> = ({
className="bottom-marker" className="bottom-marker"
data-message-id={messageId} data-message-id={messageId}
data-last-message-id={album ? album.messages[album.messages.length - 1].id : undefined} data-last-message-id={album ? album.messages[album.messages.length - 1].id : undefined}
data-album-main-id={album ? album.mainMessage.id : undefined}
data-has-unread-mention={message.hasUnreadMention || undefined} data-has-unread-mention={message.hasUnreadMention || undefined}
data-has-unread-reaction={hasUnreadReaction || undefined} data-has-unread-reaction={hasUnreadReaction || undefined}
data-is-pinned={isPinned || undefined} data-is-pinned={isPinned || undefined}