import React from 'react'; import { useDispatch, useSelector } from 'react-redux'; import { deleteMessagesById, deleteMessagesByIdForEveryone, } from '../../../interactions/conversations/unsendingInteractions'; import { resetSelectedMessageIds } from '../../../state/ducks/conversations'; import { getSelectedMessageIds } from '../../../state/selectors/conversations'; import { useSelectedConversationKey, useSelectedIsPublic, } from '../../../state/selectors/selectedConversation'; import { SessionButton, SessionButtonColor, SessionButtonShape, SessionButtonType, } from '../../basic/SessionButton'; import { SessionIconButton } from '../../icon'; export const SelectionOverlay = () => { const selectedMessageIds = useSelector(getSelectedMessageIds); const selectedConversationKey = useSelectedConversationKey(); const isPublic = useSelectedIsPublic(); const dispatch = useDispatch(); const { i18n } = window; function onCloseOverlay() { dispatch(resetSelectedMessageIds()); } function onDeleteSelectedMessages() { if (selectedConversationKey) { void deleteMessagesById(selectedMessageIds, selectedConversationKey); } } function onDeleteSelectedMessagesForEveryone() { if (selectedConversationKey) { void deleteMessagesByIdForEveryone(selectedMessageIds, selectedConversationKey); } } const isOnlyServerDeletable = isPublic; const deleteMessageButtonText = i18n('delete'); const deleteForEveryoneMessageButtonText = i18n('deleteForEveryone'); return ( <div className="message-selection-overlay"> <div className="close-button"> <SessionIconButton iconType="exit" iconSize="medium" onClick={onCloseOverlay} /> </div> <div className="button-group"> {!isOnlyServerDeletable && ( <SessionButton buttonColor={SessionButtonColor.Danger} buttonShape={SessionButtonShape.Square} buttonType={SessionButtonType.Solid} text={deleteMessageButtonText} onClick={onDeleteSelectedMessages} /> )} <SessionButton buttonColor={SessionButtonColor.Danger} buttonShape={SessionButtonShape.Square} buttonType={SessionButtonType.Solid} text={deleteForEveryoneMessageButtonText} onClick={onDeleteSelectedMessagesForEveryone} /> </div> </div> ); };