From 73ca99496dbef45ec6543e866a6df25877abe17a Mon Sep 17 00:00:00 2001 From: William Grant Date: Thu, 18 May 2023 16:23:43 +1000 Subject: [PATCH] feat: added DisappearingMessageModesWithState type --- ts/state/selectors/conversations.ts | 9 ++++++--- ts/util/expiringMessages.ts | 5 +++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index 0b506fdda..58a6ff8a7 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -37,7 +37,10 @@ import { ConversationTypeEnum } from '../../models/conversationAttributes'; import { MessageReactsSelectorProps } from '../../components/conversation/message/message-content/MessageReactions'; import { filter, isEmpty, pick, sortBy } from 'lodash'; -import { DisappearingMessageConversationSetting } from '../../util/expiringMessages'; +import { + DisappearingMessageConversationSetting, + DisappearingMessageModesWithState, +} from '../../util/expiringMessages'; import { ConversationHeaderTitleProps } from '../../components/conversation/header/ConversationHeaderTitle'; import { PropsForExpirationSettings } from '../../components/conversation/right-panel/overlay/disappearing-messages/OverlayDisappearingMessages'; @@ -1214,7 +1217,7 @@ export const getSelectedConversationExpirationModes = createSelector( modes = [modes[0], modes[2]]; } - const modesWithDisabledState: any = {}; + const modesWithDisabledState: DisappearingMessageModesWithState = {}; if (modes && modes.length > 1) { modes.forEach(mode => { modesWithDisabledState[mode] = isClosedGroup ? !convo.weAreAdmin : false; @@ -1240,7 +1243,7 @@ export const getSelectedConversationExpirationModesWithLegacy = createSelector( // Legacy mode is the 2nd option in the UI modes = [modes[0], modes[modes.length - 1], ...modes.slice(1, modes.length - 1)]; - const modesWithDisabledState: any = {}; + const modesWithDisabledState: DisappearingMessageModesWithState = {}; // The new modes are disabled by default if (modes && modes.length > 1) { modes.forEach(mode => { diff --git a/ts/util/expiringMessages.ts b/ts/util/expiringMessages.ts index 8aea9776e..ec089acd7 100644 --- a/ts/util/expiringMessages.ts +++ b/ts/util/expiringMessages.ts @@ -21,6 +21,11 @@ export type DisappearingMessageType = typeof DisappearingMessageMode[number] | n // TODO legacy messages support will be removed in a future release export const DisappearingMessageConversationSetting = ['off', ...DisappearingMessageMode, 'legacy']; export type DisappearingMessageConversationType = typeof DisappearingMessageConversationSetting[number]; +export type DisappearingMessageModesWithState = Record< + DisappearingMessageConversationType, + boolean +>; + export const DEFAULT_TIMER_OPTION = { DELETE_AFTER_READ: 43200, // 12 hours DELETE_AFTER_SEND: 86400, // 1 day