no confirmation on message delete from the message detail view

pull/1381/head
Audric Ackermann 5 years ago
parent c1c1cde14b
commit 82b59f808d
No known key found for this signature in database
GPG Key ID: 999F434D76324AD4

@ -931,6 +931,10 @@
"androidKey": "conversation_context__menu_delete_message", "androidKey": "conversation_context__menu_delete_message",
"description": "action visible in MessageDetail screen" "description": "action visible in MessageDetail screen"
}, },
"deleted": {
"message": "Deleted",
"description": "Toast validation when a single or several messages were deleted"
},
"from": { "from": {
"message": "From:", "message": "From:",
"description": "Label for the sender of a message", "description": "Label for the sender of a message",

@ -31,6 +31,7 @@ import { MessageView } from '../../MainViewController';
import { getMessageById, removeMessage } from '../../../../js/modules/data'; import { getMessageById, removeMessage } from '../../../../js/modules/data';
import { pushUnblockToSend } from '../../../session/utils/Toast'; import { pushUnblockToSend } from '../../../session/utils/Toast';
import { MessageDetail } from '../../conversation/MessageDetail'; import { MessageDetail } from '../../conversation/MessageDetail';
import { Toast } from 'react-toastify/dist/components';
interface State { interface State {
// Message sending progress // Message sending progress
@ -651,7 +652,7 @@ export class SessionConversation extends React.Component<Props, State> {
this.updateSendingProgress(100, -1); this.updateSendingProgress(100, -1);
} }
public async deleteSelectedMessages() { public async deleteMessagesById(messageIds: Array<string>, askUserForConfirmation: boolean) {
// Get message objects // Get message objects
const { conversationKey, messages } = this.props; const { conversationKey, messages } = this.props;
@ -659,7 +660,7 @@ export class SessionConversation extends React.Component<Props, State> {
conversationKey conversationKey
); );
const selectedMessages = messages.filter(message => const selectedMessages = messages.filter(message =>
this.state.selectedMessages.find( messageIds.find(
selectedMessage => selectedMessage === message.id selectedMessage => selectedMessage === message.id
) )
); );
@ -687,7 +688,7 @@ export class SessionConversation extends React.Component<Props, State> {
const doDelete = async () => { const doDelete = async () => {
let toDeleteLocally; let toDeleteLocally;
// VINCE TOOD: MARK TO-DELETE MESSAGES AS READ // VINCE TODO: MARK TO-DELETE MESSAGES AS READ
if (isPublic) { if (isPublic) {
// Get our Moderator status // Get our Moderator status
@ -731,7 +732,7 @@ export class SessionConversation extends React.Component<Props, State> {
); );
// Update view and trigger update // Update view and trigger update
this.setState({ selectedMessages: [] }); this.setState({ selectedMessages: [] }, ToastUtils.pushDeleted);
}; };
// If removable from server, we "Unsend" - otherwise "Delete" // If removable from server, we "Unsend" - otherwise "Delete"
@ -745,14 +746,21 @@ export class SessionConversation extends React.Component<Props, State> {
const okText = window.i18n( const okText = window.i18n(
isServerDeletable ? 'deleteForEveryone' : 'delete' isServerDeletable ? 'deleteForEveryone' : 'delete'
); );
if (askUserForConfirmation) {
window.confirmationDialog({
title,
message: warningMessage,
okText,
okTheme: 'danger',
resolve: doDelete,
});
} else {
void doDelete();
}
}
window.confirmationDialog({ public async deleteSelectedMessages() {
title, await this.deleteMessagesById(this.state.selectedMessages, true);
message: warningMessage,
okText,
okTheme: 'danger',
resolve: doDelete,
});
} }
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -832,8 +840,8 @@ export class SessionConversation extends React.Component<Props, State> {
} }
private async showMessageDetails(messageProps: any) { private async showMessageDetails(messageProps: any) {
messageProps.onDeleteMessage = (id: string) => { messageProps.onDeleteMessage = async (id: string) => {
this.deleteMessage(id); await this.deleteMessagesById([id], false);
this.setState({ messageDetailShowProps: undefined }); this.setState({ messageDetailShowProps: undefined });
}; };

@ -242,3 +242,7 @@ export function pushClockOutOfSync() {
export function pushYouLeftTheGroup() { export function pushYouLeftTheGroup() {
pushToastError('youLeftTheGroup', window.i18n('youLeftTheGroup')); pushToastError('youLeftTheGroup', window.i18n('youLeftTheGroup'));
} }
export function pushDeleted() {
pushToastSuccess('deleted', window.i18n('deleted'), undefined, SessionIconType.Check);
}

Loading…
Cancel
Save