mirror of
https://github.com/signalapp/Signal-Desktop.git
synced 2026-04-19 07:58:46 +01:00
Admin Delete
This commit is contained in:
@@ -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}
|
||||
/>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user