You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
TypeScript
73 lines
2.4 KiB
TypeScript
import React from 'react';
|
|
|
|
import { PropsForExpirationTimer } from '../../state/ducks/conversations';
|
|
import { assertUnreachable } from '../../types/sqlSharedTypes';
|
|
|
|
import { isLegacyDisappearingModeEnabled } from '../../session/disappearing_messages/legacy';
|
|
import { Flex } from '../basic/Flex';
|
|
import { SpacerSM, Text } from '../basic/Text';
|
|
import { SessionIcon } from '../icon';
|
|
import { ExpirableReadableMessage } from './message/message-item/ExpirableReadableMessage';
|
|
|
|
export const TimerNotification = (props: PropsForExpirationTimer) => {
|
|
const { messageId, pubkey, profileName, expirationMode, timespan, type, disabled } = props;
|
|
|
|
const contact = profileName || pubkey;
|
|
// TODO legacy messages support will be removed in a future release
|
|
const mode = isLegacyDisappearingModeEnabled(expirationMode)
|
|
? null
|
|
: expirationMode === 'deleteAfterRead'
|
|
? window.i18n('timerModeRead')
|
|
: window.i18n('timerModeSent');
|
|
|
|
let textToRender: string | undefined;
|
|
switch (type) {
|
|
case 'fromOther':
|
|
textToRender = disabled
|
|
? window.i18n('disabledDisappearingMessages', [contact, timespan])
|
|
: mode
|
|
? window.i18n('theyChangedTheTimer', [contact, timespan, mode])
|
|
: window.i18n('theyChangedTheTimerLegacy', [contact, timespan]);
|
|
break;
|
|
case 'fromMe':
|
|
case 'fromSync':
|
|
textToRender = disabled
|
|
? window.i18n('youDisabledDisappearingMessages')
|
|
: mode
|
|
? window.i18n('youChangedTheTimer', [timespan, mode])
|
|
: window.i18n('youChangedTheTimerLegacy', [timespan]);
|
|
break;
|
|
default:
|
|
assertUnreachable(type, `TimerNotification: Missing case error "${type}"`);
|
|
}
|
|
|
|
if (!textToRender || textToRender.length === 0) {
|
|
throw new Error('textToRender invalid key used TimerNotification');
|
|
}
|
|
|
|
return (
|
|
<ExpirableReadableMessage
|
|
messageId={messageId}
|
|
isCentered={true}
|
|
key={`readable-message-${messageId}`}
|
|
dataTestId={'disappear-control-message'}
|
|
>
|
|
<Flex
|
|
container={true}
|
|
flexDirection="column"
|
|
alignItems="center"
|
|
justifyContent="center"
|
|
width="90%"
|
|
maxWidth="700px"
|
|
margin="10px auto"
|
|
padding="5px 10px"
|
|
style={{ textAlign: 'center' }}
|
|
>
|
|
<SessionIcon iconType="stopwatch" iconColor="inherit" iconSize="medium" />
|
|
<SpacerSM />
|
|
<Text text={textToRender} />
|
|
</Flex>
|
|
</ExpirableReadableMessage>
|
|
);
|
|
};
|