From 9a1e67bbe33f3ebecb057fa6ffba8444411c7727 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Fri, 1 May 2026 11:12:19 +0300 Subject: [PATCH] fix(app): avoid duplicate tabs on hot reload --- src/views/EditorView.vue | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/views/EditorView.vue b/src/views/EditorView.vue index e5716f46d..d7fc4def1 100644 --- a/src/views/EditorView.vue +++ b/src/views/EditorView.vue @@ -15,7 +15,7 @@ import { spawnMCPIfNeeded } from '@/app/automation/mcp/spawn' import { IS_BROWSER } from '@open-pencil/core/constants' import { createDemoShapes } from '@/app/demo/document' import { useEditorStore } from '@/app/editor/active-store' -import { createTab, activeTab, getActiveStore } from '@/app/tabs' +import { createTab, activeTab, getActiveStore, tabCount } from '@/app/tabs' import CollabPanel from '@/components/CollabPanel/CollabPanel.vue' import EditorCanvas from '@/components/EditorCanvas.vue' @@ -31,11 +31,12 @@ const route = useRoute() const params = useUrlSearchParams('history') const showChrome = !('no-chrome' in params) -const firstTab = createTab() +const createdInitialTab = tabCount() === 0 +const firstTab = createdInitialTab ? createTab() : (activeTab.value ?? createTab()) const store = useEditorStore() const { isMobile } = useViewportKind() -if (route.meta.demo && !('test' in params)) { +if (createdInitialTab && route.meta.demo && !('test' in params)) { createDemoShapes(firstTab.store) }