diff --git a/src/apps/main/core/common/workspaces/workspacesService.ts b/src/apps/main/core/common/workspaces/workspacesService.ts index 5467cf59..27a7cf67 100644 --- a/src/apps/main/core/common/workspaces/workspacesService.ts +++ b/src/apps/main/core/common/workspaces/workspacesService.ts @@ -64,12 +64,20 @@ export class WorkspacesService implements WorkspacesDataManagerBase { deleteWorkspace(workspaceID: TWorkspaceID): void { if (workspacesDataStore.data.size === 1) return; - this.tabManagerCtx.removeTabByWorkspaceId(workspaceID); - setWorkspacesDataStore( - "order", - (prev) => prev.filter((v) => v !== workspaceID), + const workspace = this.getRawWorkspace(workspaceID); + const result = Services.prompt.confirm( + window, + i18next.t('workspaces.modal.deleteTitle'), + i18next.t('workspaces.modal.deleteText', { name: workspace.name }), ); - this.dataManagerCtx.deleteWorkspace(workspaceID); + if (result) { + this.tabManagerCtx.removeTabByWorkspaceId(workspaceID); + setWorkspacesDataStore( + "order", + (prev) => prev.filter((v) => v !== workspaceID), + ); + this.dataManagerCtx.deleteWorkspace(workspaceID); + } } /** diff --git a/src/apps/main/i18n/locales/en-US.json b/src/apps/main/i18n/locales/en-US.json index ceb7c49e..18cd8b1f 100644 --- a/src/apps/main/i18n/locales/en-US.json +++ b/src/apps/main/i18n/locales/en-US.json @@ -12,7 +12,9 @@ "icon": "Icon", "edit-title": "Edit Workspace", "save": "Save Changes", - "cancel": "Cancel" + "cancel": "Cancel", + "deleteTitle": "Delete workspace", + "deleteText": "Please confirm to delete workspace: {{name}}" }, "icons": { "article": "Article", @@ -231,4 +233,4 @@ "set_pref_description": "Please set the editor path", "please_enter_filename": "Please enter a filename" } -} \ No newline at end of file +}