From 7b103226be8aa73f42efe44a3b70e3c52e1593cb Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 21 Dec 2021 13:41:19 +1100 Subject: [PATCH 1/2] add 'contact' or 'group' to delete action menu Fixes #2066 --- _locales/en/messages.json | 2 ++ ts/components/menu/Menu.tsx | 4 +++- ts/types/LocalizerKeys.ts | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 45580ed3f..7287c9763 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -19,6 +19,8 @@ "editMenuPaste": "Paste", "editMenuPasteAndMatchStyle": "Paste and Match Style", "editMenuDelete": "Delete", + "editMenuDeleteContact": "Delete Contact", + "editMenuDeleteGroup": "Delete Group", "editMenuSelectAll": "Select all", "windowMenuClose": "Close Window", "windowMenuMinimize": "Minimize", diff --git a/ts/components/menu/Menu.tsx b/ts/components/menu/Menu.tsx index f148a6b5c..5dafc5445 100644 --- a/ts/components/menu/Menu.tsx +++ b/ts/components/menu/Menu.tsx @@ -196,7 +196,9 @@ export function getDeleteContactMenuItem( if (isPublic) { menuItemText = window.i18n('leaveGroup'); } else { - menuItemText = window.i18n('delete'); + menuItemText = isGroup + ? window.i18n('editMenuDeleteGroup') + : window.i18n('editMenuDeleteContact'); } const onClickClose = () => { diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts index 18945b0c3..e254fe6dd 100644 --- a/ts/types/LocalizerKeys.ts +++ b/ts/types/LocalizerKeys.ts @@ -214,6 +214,7 @@ export type LocalizerKeys = | 'groupNamePlaceholder' | 'stagedPreviewThumbnail' | 'helpUsTranslateSession' + | 'editMenuDeleteGroup' | 'unreadMessages' | 'documents' | 'audioPermissionNeededTitle' @@ -250,6 +251,7 @@ export type LocalizerKeys = | 'previewThumbnail' | 'photo' | 'setPassword' + | 'editMenuDeleteContact' | 'hideMenuBarTitle' | 'imageCaptionIconAlt' | 'blockAll' From 1a8a839ba3c371f17cb8a1362255129a2438f30b Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Tue, 21 Dec 2021 15:39:46 +1100 Subject: [PATCH 2/2] no need to deleteAuthToken anymore for opengroupv2 servers --- .../open_group_api/opengroupV2/ApiAuth.ts | 29 ------------------- .../opengroupV2/OpenGroupManagerV2.ts | 8 ----- .../conversations/ConversationController.ts | 11 +------ 3 files changed, 1 insertion(+), 47 deletions(-) diff --git a/ts/session/apis/open_group_api/opengroupV2/ApiAuth.ts b/ts/session/apis/open_group_api/opengroupV2/ApiAuth.ts index 9226720e2..86a17a2f4 100644 --- a/ts/session/apis/open_group_api/opengroupV2/ApiAuth.ts +++ b/ts/session/apis/open_group_api/opengroupV2/ApiAuth.ts @@ -84,35 +84,6 @@ export async function getAuthToken({ return oneAtATimeGetAuth({ roomId, serverUrl }); } -export type DeleteAuthTokenRequest = OpenGroupRequestCommonType & { token: string }; -export const deleteAuthToken = async ({ - serverUrl, - roomId, - token, -}: DeleteAuthTokenRequest): Promise => { - const request: OpenGroupV2Request = { - method: 'DELETE', - room: roomId, - server: serverUrl, - isAuthRequired: true, - endpoint: 'auth_token', - forcedTokenToUse: token, - }; - try { - const result = await sendApiV2Request(request); - const statusCode = parseStatusCodeFromOnionRequest(result); - if (statusCode !== 200) { - // FIXME not yet sure why this call always return 401 - // window?.log?.warn(`Could not deleteAuthToken, status code: ${statusCode}`); - return; - } - return; - } catch (e) { - window?.log?.error('deleteAuthToken failed:', e); - return; - } -}; - // tslint:disable: member-ordering export async function requestNewAuthToken({ serverUrl, diff --git a/ts/session/apis/open_group_api/opengroupV2/OpenGroupManagerV2.ts b/ts/session/apis/open_group_api/opengroupV2/OpenGroupManagerV2.ts index 3519b0fa7..d2e279d7f 100644 --- a/ts/session/apis/open_group_api/opengroupV2/OpenGroupManagerV2.ts +++ b/ts/session/apis/open_group_api/opengroupV2/OpenGroupManagerV2.ts @@ -14,7 +14,6 @@ import { openGroupV2GetRoomInfo } from './OpenGroupAPIV2'; import { OpenGroupServerPoller } from './OpenGroupServerPoller'; import _ from 'lodash'; -import { deleteAuthToken, DeleteAuthTokenRequest } from './ApiAuth'; import autoBind from 'auto-bind'; let instance: OpenGroupManagerV2 | undefined; @@ -129,13 +128,6 @@ export class OpenGroupManagerV2 { try { const roomConvoId = getOpenGroupV2ConversationId(infos.serverUrl, infos.roomId); if (!allConvos.get(roomConvoId)) { - // leave the group on the remote server - // this request doesn't throw - if (infos.token) { - await deleteAuthToken( - _.pick(infos, 'serverUrl', 'roomId', 'token') as DeleteAuthTokenRequest - ); - } // remove the roomInfos locally for this open group room await removeV2OpenGroupRoom(roomConvoId); getOpenGroupManager().removeRoomFromPolledRooms(infos); diff --git a/ts/session/conversations/ConversationController.ts b/ts/session/conversations/ConversationController.ts index bbcf83f12..e35ce9f96 100644 --- a/ts/session/conversations/ConversationController.ts +++ b/ts/session/conversations/ConversationController.ts @@ -12,10 +12,7 @@ import { actions as conversationActions } from '../../state/ducks/conversations' import { getV2OpenGroupRoom, removeV2OpenGroupRoom } from '../../data/opengroups'; import _ from 'lodash'; import { getOpenGroupManager } from '../apis/open_group_api/opengroupV2/OpenGroupManagerV2'; -import { - deleteAuthToken, - DeleteAuthTokenRequest, -} from '../apis/open_group_api/opengroupV2/ApiAuth'; + import { deleteAllMessagesByConvoIdNoConfirmation } from '../../interactions/conversationInteractions'; let instance: ConversationController | null; @@ -201,12 +198,6 @@ export class ConversationController { window?.log?.info('leaving open group v2', conversation.id); const roomInfos = await getV2OpenGroupRoom(conversation.id); if (roomInfos) { - if (roomInfos.token) { - // leave the group on the remote server - await deleteAuthToken( - _.pick(roomInfos, 'serverUrl', 'roomId', 'token') as DeleteAuthTokenRequest - ); - } getOpenGroupManager().removeRoomFromPolledRooms(roomInfos); // remove the roomInfos locally for this open group room