fix: select overview tab when closing all tabs (#8026)

This commit is contained in:
naman-bruno
2026-05-20 16:32:57 +05:30
committed by GitHub
parent e0de7d5557
commit 023630338b
4 changed files with 74 additions and 16 deletions

View File

@@ -344,7 +344,8 @@ export const tabsSlice = createSlice({
if (siblingTabs && siblingTabs.length) {
state.activeTabUid = last(siblingTabs).uid;
} else {
state.activeTabUid = last(state.tabs).uid;
const overviewTab = find(state.tabs, (t) => t.type === 'workspaceOverview');
state.activeTabUid = overviewTab ? overviewTab.uid : last(state.tabs).uid;
}
}
}
@@ -360,7 +361,12 @@ export const tabsSlice = createSlice({
const activeTabStillExists = state.tabs.some((t) => t.uid === prevActiveTabUid);
if (!activeTabStillExists) {
state.activeTabUid = state.tabs.length > 0 ? last(state.tabs).uid : null;
if (state.tabs.length === 0) {
state.activeTabUid = null;
} else {
const overviewTab = find(state.tabs, (t) => t.type === 'workspaceOverview');
state.activeTabUid = overviewTab ? overviewTab.uid : last(state.tabs).uid;
}
}
},
makeTabPermanent: (state, action) => {

View File

@@ -54,7 +54,8 @@ export function getTabToFocusForCurrentWorkspace(state) {
}
const inWorkspaceTabs = filter(state.tabs.tabs, (t) => workspaceCollectionUids.has(t.collectionUid));
if (inWorkspaceTabs.length > 0) {
return { uid: last(inWorkspaceTabs).uid };
const overviewTab = inWorkspaceTabs.find((t) => t.type === 'workspaceOverview');
return { uid: (overviewTab || last(inWorkspaceTabs)).uid };
}
const scratchCollectionUid = activeWorkspace.scratchCollectionUid;
if (!scratchCollectionUid) {