|
|
@ -1,6 +1,8 @@
|
|
|
|
|
|
|
|
import FocusTrap from 'focus-trap-react';
|
|
|
|
import React from 'react';
|
|
|
|
import React from 'react';
|
|
|
|
import { useDispatch, useSelector } from 'react-redux';
|
|
|
|
import { useDispatch, useSelector } from 'react-redux';
|
|
|
|
import useKey from 'react-use/lib/useKey';
|
|
|
|
import useKey from 'react-use/lib/useKey';
|
|
|
|
|
|
|
|
|
|
|
|
import {
|
|
|
|
import {
|
|
|
|
deleteMessagesById,
|
|
|
|
deleteMessagesById,
|
|
|
|
deleteMessagesByIdForEveryone,
|
|
|
|
deleteMessagesByIdForEveryone,
|
|
|
@ -73,32 +75,36 @@ export const SelectionOverlay = () => {
|
|
|
|
|
|
|
|
|
|
|
|
const isOnlyServerDeletable = isPublic;
|
|
|
|
const isOnlyServerDeletable = isPublic;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const classNameAndId = 'message-selection-overlay';
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<div className="message-selection-overlay">
|
|
|
|
<FocusTrap focusTrapOptions={{ fallbackFocus: `#${classNameAndId}`, allowOutsideClick: true }}>
|
|
|
|
<div className="close-button">
|
|
|
|
<div className={classNameAndId} id={classNameAndId}>
|
|
|
|
<SessionIconButton iconType="exit" iconSize="medium" onClick={onCloseOverlay} />
|
|
|
|
<div className="close-button">
|
|
|
|
</div>
|
|
|
|
<SessionIconButton iconType="exit" iconSize="medium" onClick={onCloseOverlay} />
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div className="button-group">
|
|
|
|
<div className="button-group">
|
|
|
|
<SessionButton
|
|
|
|
<SessionButton
|
|
|
|
buttonColor={SessionButtonColor.Danger}
|
|
|
|
buttonColor={SessionButtonColor.Danger}
|
|
|
|
buttonShape={SessionButtonShape.Square}
|
|
|
|
buttonShape={SessionButtonShape.Square}
|
|
|
|
buttonType={SessionButtonType.Solid}
|
|
|
|
buttonType={SessionButtonType.Solid}
|
|
|
|
text={window.i18n('delete')}
|
|
|
|
text={window.i18n('delete')}
|
|
|
|
onClick={() => {
|
|
|
|
onClick={() => {
|
|
|
|
if (selectedConversationKey) {
|
|
|
|
if (selectedConversationKey) {
|
|
|
|
if (isOnlyServerDeletable) {
|
|
|
|
if (isOnlyServerDeletable) {
|
|
|
|
void onDeleteSelectedMessagesForEveryone(
|
|
|
|
void onDeleteSelectedMessagesForEveryone(
|
|
|
|
selectedConversationKey,
|
|
|
|
selectedConversationKey,
|
|
|
|
selectedMessageIds
|
|
|
|
selectedMessageIds
|
|
|
|
);
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
void deleteMessagesById(selectedMessageIds, selectedConversationKey);
|
|
|
|
void deleteMessagesById(selectedMessageIds, selectedConversationKey);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}}
|
|
|
|
}}
|
|
|
|
/>
|
|
|
|
/>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</FocusTrap>
|
|
|
|
);
|
|
|
|
);
|
|
|
|
};
|
|
|
|
};
|
|
|
|