From c53fa46b5bfaf230ff4de42e0ad7ac8e2a1c856d Mon Sep 17 00:00:00 2001 From: Av1ralS1ngh Date: Thu, 16 Apr 2026 22:11:14 +0530 Subject: [PATCH] Fix:Tab-numbering-logic --- src/hooks/__tests__/useTabs.test.tsx | 20 ++++++++++++++++++++ src/hooks/useTabs.ts | 14 +++++++++++++- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/hooks/__tests__/useTabs.test.tsx b/src/hooks/__tests__/useTabs.test.tsx index dcf1974..5257fa0 100644 --- a/src/hooks/__tests__/useTabs.test.tsx +++ b/src/hooks/__tests__/useTabs.test.tsx @@ -142,6 +142,26 @@ describe("useTabs", () => { expect(sawTabOne).toBe(true); }); + it("names new tabs from currently open tab count after closing", () => { + const { result } = renderTabs(); + + act(() => { + result.current.addTab(); + result.current.requestCloseTab("tab-2"); + }); + + act(() => { + result.current.confirmCloseTab(); + }); + + act(() => { + result.current.addTab(); + }); + + const reopened = result.current.tabs.find((t) => t.id === "tab-3"); + expect(reopened?.title).toBe("Flow 2"); + }); + it("updates tooltip and transform", () => { const { result } = renderTabs(); diff --git a/src/hooks/useTabs.ts b/src/hooks/useTabs.ts index b18e07d..21baff4 100644 --- a/src/hooks/useTabs.ts +++ b/src/hooks/useTabs.ts @@ -704,9 +704,20 @@ export function useTabs({ const newIndex = tabCounter + 1; setTabCounter(newIndex); const newId = `tab-${newIndex}`; + + const usedTitles = new Set( + tabs.map((tab) => tab.title.trim().toLowerCase()) + ); + let titleIndex = tabs.length + 1; + let nextTitle = `Flow ${titleIndex}`; + while (usedTitles.has(nextTitle.toLowerCase())) { + titleIndex += 1; + nextTitle = `Flow ${titleIndex}`; + } + const newTab: FlowTab = { id: newId, - title: `Flow ${newIndex}`, + title: nextTitle, version: 0, transform: { x: 0, y: 0, zoom: 1 }, }; @@ -745,6 +756,7 @@ export function useTabs({ setProtocolDiagramLayout, setActiveTabCtx, persistTabCompressed, + tabs, tabCounter, ]);