mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-05-03 14:51:18 +01:00
Fix pinned messages state syncing
This commit is contained in:
@@ -4,14 +4,15 @@
|
||||
import React, { memo, useCallback } from 'react';
|
||||
import { useSelector } from 'react-redux';
|
||||
import { getIntl } from '../selectors/user.std.js';
|
||||
import { getConversationByIdSelector } from '../selectors/conversations.dom.js';
|
||||
import {
|
||||
getConversationByIdSelector,
|
||||
getPinnedMessages,
|
||||
} from '../selectors/conversations.dom.js';
|
||||
import { strictAssert } from '../../util/assert.std.js';
|
||||
import { PinnedMessagesPanel } from '../../components/conversation/pinned-messages/PinnedMessagesPanel.dom.js';
|
||||
import type { SmartTimelineItemProps } from './TimelineItem.preload.js';
|
||||
import { SmartTimelineItem } from './TimelineItem.preload.js';
|
||||
import { getPinnedMessages } from '../selectors/pinnedMessages.dom.js';
|
||||
import { canPinMessages as getCanPinMessages } from '../selectors/message.preload.js';
|
||||
import { usePinnedMessagesActions } from '../ducks/pinnedMessages.preload.js';
|
||||
import { useConversationsActions } from '../ducks/conversations.preload.js';
|
||||
|
||||
export type SmartPinnedMessagesPanelProps = Readonly<{
|
||||
@@ -28,7 +29,8 @@ export const SmartPinnedMessagesPanel = memo(function SmartPinnedMessagesPanel(
|
||||
const i18n = useSelector(getIntl);
|
||||
const conversationSelector = useSelector(getConversationByIdSelector);
|
||||
const conversation = conversationSelector(props.conversationId);
|
||||
const { popPanelForConversation } = useConversationsActions();
|
||||
const { onPinnedMessageRemove, popPanelForConversation } =
|
||||
useConversationsActions();
|
||||
|
||||
strictAssert(
|
||||
conversation,
|
||||
@@ -38,11 +40,9 @@ export const SmartPinnedMessagesPanel = memo(function SmartPinnedMessagesPanel(
|
||||
const pinnedMessages = useSelector(getPinnedMessages);
|
||||
const canPinMessages = getCanPinMessages(conversation);
|
||||
|
||||
const { onPinnedMessageRemove } = usePinnedMessagesActions();
|
||||
|
||||
const handlePinnedMessageRemoveAll = useCallback(() => {
|
||||
popPanelForConversation();
|
||||
for (const { pinnedMessage } of pinnedMessages) {
|
||||
for (const pinnedMessage of pinnedMessages) {
|
||||
onPinnedMessageRemove(pinnedMessage.messageId);
|
||||
}
|
||||
}, [popPanelForConversation, pinnedMessages, onPinnedMessageRemove]);
|
||||
|
||||
Reference in New Issue
Block a user