Rename delete for everyone to delete from all devices in note to self

This commit is contained in:
Jamie Kyle 2023-04-13 13:38:35 -07:00 committed by GitHub
parent 3045a4950d
commit 42e13aedcd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 5 deletions

View file

@ -8979,6 +8979,10 @@
"messageformat": "Who would you like to delete {count, plural, one {this message} other {these messages}} for?", "messageformat": "Who would you like to delete {count, plural, one {this message} other {these messages}} for?",
"description": "delete selected messages > confirmation modal > description" "description": "delete selected messages > confirmation modal > description"
}, },
"icu:DeleteMessagesModal--description--noteToSelf": {
"messageformat": "What devices would you like to delete {count, plural, one {this message} other {these messages}} from?",
"description": "within note to self conversation > delete selected messages > confirmation modal > description"
},
"icu:SelectModeActions__confirmDelete--confirm": { "icu:SelectModeActions__confirmDelete--confirm": {
"messageformat": "Delete for me", "messageformat": "Delete for me",
"description": "(deleted 03/24/2023) conversation > in select mode > composition area actions > delete selected messages > confirmation modal > button" "description": "(deleted 03/24/2023) conversation > in select mode > composition area actions > delete selected messages > confirmation modal > button"
@ -8991,10 +8995,18 @@
"messageformat": "Delete for me", "messageformat": "Delete for me",
"description": "delete selected messages > confirmation modal > delete for me" "description": "delete selected messages > confirmation modal > delete for me"
}, },
"icu:DeleteMessagesModal--deleteFromThisDevice": {
"messageformat": "Delete from this device",
"description": "within note to self conversation > delete selected messages > confirmation modal > delete from this device (same as delete for me)"
},
"icu:DeleteMessagesModal--deleteForEveryone": { "icu:DeleteMessagesModal--deleteForEveryone": {
"messageformat": "Delete for everyone", "messageformat": "Delete for everyone",
"description": "delete selected messages > confirmation modal > delete for everyone" "description": "delete selected messages > confirmation modal > delete for everyone"
}, },
"icu:DeleteMessagesModal--deleteFromAllDevices": {
"messageformat": "Delete from all devices",
"description": "within note to self conversation > delete selected messages > confirmation modal > delete from all devices (same as delete for everyone)"
},
"icu:DeleteMessagesModal__toast--TooManyMessagesToDeleteForEveryone": { "icu:DeleteMessagesModal__toast--TooManyMessagesToDeleteForEveryone": {
"messageformat": "You can only select up to {count, plural, one {# message} other {# messages}} to delete for everyone", "messageformat": "You can only select up to {count, plural, one {# message} other {# messages}} to delete for everyone",
"description": "delete selected messages > confirmation modal > deleted for everyone (disabled) > toast > too many messages to 'delete for everyone'" "description": "delete selected messages > confirmation modal > deleted for everyone (disabled) > toast > too many messages to 'delete for everyone'"

View file

@ -9,6 +9,7 @@ import type { ShowToastAction } from '../state/ducks/toast';
import { ToastType } from '../types/Toast'; import { ToastType } from '../types/Toast';
type DeleteMessagesModalProps = Readonly<{ type DeleteMessagesModalProps = Readonly<{
isMe: boolean;
canDeleteForEveryone: boolean; canDeleteForEveryone: boolean;
i18n: LocalizerType; i18n: LocalizerType;
messageCount: number; messageCount: number;
@ -21,6 +22,7 @@ type DeleteMessagesModalProps = Readonly<{
const MAX_DELETE_FOR_EVERYONE = 30; const MAX_DELETE_FOR_EVERYONE = 30;
export default function DeleteMessagesModal({ export default function DeleteMessagesModal({
isMe,
canDeleteForEveryone, canDeleteForEveryone,
i18n, i18n,
messageCount, messageCount,
@ -34,7 +36,9 @@ export default function DeleteMessagesModal({
actions.push({ actions.push({
action: onDeleteForMe, action: onDeleteForMe,
style: 'negative', style: 'negative',
text: i18n('icu:DeleteMessagesModal--deleteForMe'), text: isMe
? i18n('icu:DeleteMessagesModal--deleteFromThisDevice')
: i18n('icu:DeleteMessagesModal--deleteForMe'),
}); });
if (canDeleteForEveryone) { if (canDeleteForEveryone) {
@ -53,7 +57,9 @@ export default function DeleteMessagesModal({
} }
}, },
style: 'negative', style: 'negative',
text: i18n('icu:DeleteMessagesModal--deleteForEveryone'), text: isMe
? i18n('icu:DeleteMessagesModal--deleteFromAllDevices')
: i18n('icu:DeleteMessagesModal--deleteForEveryone'),
}); });
} }
@ -68,9 +74,13 @@ export default function DeleteMessagesModal({
})} })}
moduleClassName="DeleteMessagesModal" moduleClassName="DeleteMessagesModal"
> >
{i18n('icu:DeleteMessagesModal--description', { {isMe
count: messageCount, ? i18n('icu:DeleteMessagesModal--description--noteToSelf', {
})} count: messageCount,
})
: i18n('icu:DeleteMessagesModal--description', {
count: messageCount,
})}
</ConfirmationDialog> </ConfirmationDialog>
); );
} }

View file

@ -12,6 +12,7 @@ import { strictAssert } from '../../util/assert';
import { canDeleteMessagesForEveryone } from '../selectors/message'; import { canDeleteMessagesForEveryone } from '../selectors/message';
import { useConversationsActions } from '../ducks/conversations'; import { useConversationsActions } from '../ducks/conversations';
import { useToastActions } from '../ducks/toast'; import { useToastActions } from '../ducks/toast';
import { getConversationSelector } from '../selectors/conversations';
export function SmartDeleteMessagesModal(): JSX.Element | null { export function SmartDeleteMessagesModal(): JSX.Element | null {
const deleteMessagesProps = useSelector< const deleteMessagesProps = useSelector<
@ -23,6 +24,10 @@ export function SmartDeleteMessagesModal(): JSX.Element | null {
'Cannot render delete messages modal without messages' 'Cannot render delete messages modal without messages'
); );
const { conversationId, messageIds, onDelete } = deleteMessagesProps; const { conversationId, messageIds, onDelete } = deleteMessagesProps;
const isMe = useSelector((state: StateType) => {
return getConversationSelector(state)(conversationId).isMe;
});
const canDeleteForEveryone = useSelector((state: StateType) => { const canDeleteForEveryone = useSelector((state: StateType) => {
return canDeleteMessagesForEveryone(state, messageIds); return canDeleteMessagesForEveryone(state, messageIds);
}); });
@ -37,6 +42,7 @@ export function SmartDeleteMessagesModal(): JSX.Element | null {
return ( return (
<DeleteMessagesModal <DeleteMessagesModal
isMe={isMe}
canDeleteForEveryone={canDeleteForEveryone} canDeleteForEveryone={canDeleteForEveryone}
i18n={i18n} i18n={i18n}
messageCount={deleteMessagesProps.messageIds.length} messageCount={deleteMessagesProps.messageIds.length}