From 42924b0c5441c7c13325421bf021c37f2d7024f6 Mon Sep 17 00:00:00 2001 From: William Grant Date: Wed, 26 Apr 2023 17:58:40 +1000 Subject: [PATCH] fix: use storage put instead of data methods so that we can track in redux added a fix in OverlayDisappearingMessages so when v2 turns on an and the app is running a migration occurs --- .../OverlayDisappearingMessages.tsx | 21 ++++++++++++++++++- ts/util/releaseFeature.ts | 16 +++++--------- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/ts/components/conversation/right-panel/overlay/disappearing-messages/OverlayDisappearingMessages.tsx b/ts/components/conversation/right-panel/overlay/disappearing-messages/OverlayDisappearingMessages.tsx index ea2aa25d8..9dd428c61 100644 --- a/ts/components/conversation/right-panel/overlay/disappearing-messages/OverlayDisappearingMessages.tsx +++ b/ts/components/conversation/right-panel/overlay/disappearing-messages/OverlayDisappearingMessages.tsx @@ -13,11 +13,15 @@ import { getSelectedConversationExpirationSettings, getSelectedConversationKey, } from '../../../../../state/selectors/conversations'; -import { DEFAULT_TIMER_OPTION } from '../../../../../util/expiringMessages'; +import { + DEFAULT_TIMER_OPTION, + DisappearingMessageConversationType, +} from '../../../../../util/expiringMessages'; import { useTimerOptionsByMode } from '../../../../../hooks/useParamSelector'; import { Header } from './Header'; import { DisappearingModes } from './DisappearingModes'; import { TimeOptions } from './TimeOptions'; +import { getConversationController } from '../../../../../session/conversations'; const StyledScrollContainer = styled.div` width: 100%; @@ -113,6 +117,21 @@ export const OverlayDisappearingMessages = (props: OverlayDisappearingMessagesPr } }, [convoProps.expirationType, convoProps.expireTimer]); + // TODO legacy messages support will be removed in a future + useEffect(() => { + if (unlockNewModes && modeSelected === 'legacy' && selectedConversationKey) { + const convo = getConversationController().get(selectedConversationKey); + if (convo) { + let defaultExpirationType: DisappearingMessageConversationType = 'deleteAfterRead'; + if (convo.isMe() || convo.isMediumGroup()) { + defaultExpirationType = 'deleteAfterSend'; + } + convo.set('expirationType', defaultExpirationType); + setModeSelected(defaultExpirationType); + } + } + }, [unlockNewModes, selectedConversationKey, modeSelected]); + return ( diff --git a/ts/util/releaseFeature.ts b/ts/util/releaseFeature.ts index e809c5283..1e111a797 100644 --- a/ts/util/releaseFeature.ts +++ b/ts/util/releaseFeature.ts @@ -1,4 +1,4 @@ -import { Data } from '../data/data'; +import { Storage } from './storage'; // TODO update to agreed value between platforms const featureReleaseTimestamp = 1706778000000; // unix 01/02/2024 09:00 @@ -15,10 +15,10 @@ export function resetFeatureReleasedCachedValue() { export async function getIsFeatureReleased(): Promise { if (isFeatureReleased === undefined) { // read values from db and cache them as it looks like we did not - const oldIsFeatureReleased = (await Data.getItemById('featureReleased'))?.value; + const oldIsFeatureReleased = Boolean(Storage.get('featureReleased')); // values do not exist in the db yet. Let's store false for now in the db and update our cached value. if (oldIsFeatureReleased === undefined) { - await Data.createOrUpdateItem({ id: 'featureReleased', value: false }); + await Storage.put('featureReleased', false); isFeatureReleased = false; } else { isFeatureReleased = oldIsFeatureReleased; @@ -37,20 +37,14 @@ export async function checkIsFeatureReleased(featureName: string): Promise