Admin Delete

This commit is contained in:
Jamie
2026-02-27 11:55:02 -08:00
committed by Yash
parent b71b5570d3
commit e424610cc2
67 changed files with 2328 additions and 569 deletions

View File

@@ -8,7 +8,7 @@ import { getIntl } from '../selectors/user.std.js';
import { useGlobalModalActions } from '../ducks/globalModals.preload.js';
import DeleteMessagesModal from '../../components/DeleteMessagesModal.dom.js';
import { strictAssert } from '../../util/assert.std.js';
import { canDeleteMessagesForEveryone } from '../selectors/message.preload.js';
import { getMessagesCanDeleteForEveryone } from '../selectors/message.preload.js';
import { useConversationsActions } from '../ducks/conversations.preload.js';
import { useToastActions } from '../ducks/toast.preload.js';
import {
@@ -16,6 +16,9 @@ import {
getLastSelectedMessage,
} from '../selectors/conversations.dom.js';
import { getDeleteMessagesProps } from '../selectors/globalModals.std.js';
import { getHasSeenAdminDeleteEducationDialog } from '../selectors/items.dom.js';
import { useItemsActions } from '../ducks/items.preload.js';
import { itemStorage } from '../../textsecure/Storage.preload.js';
export const SmartDeleteMessagesModal = memo(
function SmartDeleteMessagesModal() {
@@ -29,18 +32,26 @@ export const SmartDeleteMessagesModal = memo(
const conversation = conversationSelector(conversationId);
const { isMe } = conversation;
const getCanDeleteForEveryone = useCallback(
const getDeleteForEveryoneType = useCallback(
(state: StateType) => {
return canDeleteMessagesForEveryone(state, { messageIds, isMe });
return getMessagesCanDeleteForEveryone(state, {
messageIds,
conversation,
ourAci: itemStorage.user.getAci(),
});
},
[messageIds, isMe]
[messageIds, conversation]
);
const canDeleteForEveryone = useSelector(getCanDeleteForEveryone);
const deleteForEveryoneResult = useSelector(getDeleteForEveryoneType);
const lastSelectedMessage = useSelector(getLastSelectedMessage);
const hasSeenAdminDeleteEducationDialog = useSelector(
getHasSeenAdminDeleteEducationDialog
);
const i18n = useSelector(getIntl);
const { toggleDeleteMessagesModal } = useGlobalModalActions();
const { deleteMessages, deleteMessagesForEveryone } =
useConversationsActions();
const { onSeenAdminDeleteEducationDialog } = useItemsActions();
const { showToast } = useToastActions();
const messageCount = deleteMessagesProps.messageIds.length;
@@ -69,15 +80,22 @@ export const SmartDeleteMessagesModal = memo(
onDelete?.();
}, [deleteMessagesForEveryone, messageIds, onDelete]);
const { canDeleteForEveryone, needsAdminDelete, isDeletingOwnMessages } =
deleteForEveryoneResult;
return (
<DeleteMessagesModal
isMe={isMe}
canDeleteForEveryone={canDeleteForEveryone}
needsAdminDelete={needsAdminDelete}
isDeletingOwnMessages={isDeletingOwnMessages}
hasSeenAdminDeleteEducationDialog={hasSeenAdminDeleteEducationDialog}
i18n={i18n}
messageCount={messageCount}
onClose={handleClose}
onDeleteForMe={handleDeleteForMe}
onDeleteForEveryone={handleDeleteForEveryone}
onSeenAdminDeleteEducationDialog={onSeenAdminDeleteEducationDialog}
showToast={showToast}
/>
);