diff --git a/ts/hooks/useParamSelector.ts b/ts/hooks/useParamSelector.ts index c5aeb970c..2ffeb94b1 100644 --- a/ts/hooks/useParamSelector.ts +++ b/ts/hooks/useParamSelector.ts @@ -9,11 +9,8 @@ import { CONVERSATION } from '../session/constants'; import { PubKey } from '../session/types'; import { UserUtils } from '../session/utils'; import { StateType } from '../state/reducer'; -import { getMessageReactsProps } from '../state/selectors/conversations'; -import { - getMessageExpirationProps, - isPrivateAndFriend, -} from '../state/selectors/selectedConversation'; +import { getMessageReactsProps, getMessageExpirationProps } from '../state/selectors/conversations'; +import { isPrivateAndFriend } from '../state/selectors/selectedConversation'; export function useAvatarPath(convoId: string | undefined) { const convoProps = useConversationPropsById(convoId); diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index 21b03d926..d690e7ce1 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -10,6 +10,7 @@ import { MessageModelPropsWithConvoProps, MessageModelPropsWithoutConvoProps, MessagePropsDetails, + PropsForExpiringMessage, PropsForQuote, QuoteLookupType, ReduxConversationType, @@ -871,6 +872,29 @@ export const getMessageAttachmentProps = createSelector(getMessagePropsByMessage return msgProps; }); +export const getMessageExpirationProps = createSelector(getMessagePropsByMessageId, (props): + | PropsForExpiringMessage + | undefined => { + if (!props || isEmpty(props)) { + return undefined; + } + + const msgProps: PropsForExpiringMessage = { + ...pick(props.propsForMessage, [ + 'convoId', + 'direction', + 'receivedAt', + 'isUnread', + 'expirationTimestamp', + 'expirationLength', + 'isExpired', + ]), + messageId: props.propsForMessage.id, + }; + + return msgProps; +}); + export const getIsMessageSelected = createSelector( getMessagePropsByMessageId, getSelectedMessageIds,