From d4fedcb6edb6c1308860a2014db163183f092fb5 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Wed, 12 Aug 2026 16:06:10 +0300 Subject: [PATCH] fix(storage): polish workspace and connection feedback (#492) * fix(storage): polish workspace and connection feedback - Move Refresh into the Storage Workspace header and keep shell theme actions available outside the editor route - Split native shell and editor menu listeners behind the app shell - Replace permanent CORS controls and inline connection results with standard toasts and clearer browser guidance * fix(app): harden native menu routing - Dispose menu listeners that finish registering after their Vue scope closes - Mark shell-owned actions in the shared menu schema instead of duplicating IDs - Cover route-neutral shell action classification --- CHANGELOG.md | 1 + src/App.vue | 5 +- src/app/integrations/storage/s3/cors.ts | 6 +- src/app/shell/menu/editor.ts | 71 ++++++++++++++ src/app/shell/menu/native-events.ts | 22 +++++ src/app/shell/menu/schema.ts | 12 ++- src/app/shell/menu/shell.ts | 41 ++++++++ src/app/shell/menu/use.ts | 93 +------------------ src/components/Shell/AppShell.vue | 9 ++ .../settings/storage/StorageSettingsPanel.vue | 41 +------- src/views/EditorView.vue | 4 +- src/views/StorageView.vue | 33 +++---- tests/engine/app/shell/menu/schema.test.ts | 14 +++ 13 files changed, 198 insertions(+), 154 deletions(-) create mode 100644 src/app/shell/menu/editor.ts create mode 100644 src/app/shell/menu/native-events.ts create mode 100644 src/app/shell/menu/shell.ts create mode 100644 src/components/Shell/AppShell.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d805cd38..4b609a58f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Keep imported Figma instances linked to their remapped source components so later component edits update existing instances. (#385) - Restore native copy, cut, and paste shortcuts in desktop text inputs while preserving design clipboard handling on the canvas. +- Remove the permanent CORS configuration action from cloud-storage settings and report connection results through standard toasts with clear browser-specific guidance. - Complete translated app, accessibility, font, color, collaboration, import, connection-test, and browser fallback text across all supported locales, and keep the document language synchronized with the selected locale. - Preserve circles, ellipses, rectangles, lines, polylines, and polygons supplied as JSX children of inline SVG elements. (#452) diff --git a/src/App.vue b/src/App.vue index f213c7e62..a8c0b20d1 100644 --- a/src/App.vue +++ b/src/App.vue @@ -4,6 +4,7 @@ import { useHead } from '@unhead/vue' import { TooltipProvider } from 'reka-ui' import { provideEditor, useI18n } from '@open-pencil/vue' +import AppShell from '@/components/Shell/AppShell.vue' import AppToast from '@/components/Shell/AppToast.vue' import SettingsDialog from '@/components/settings/SettingsDialog.vue' import { useEditorStore } from '@/app/editor/active-store' @@ -32,7 +33,9 @@ onMounted(() => {