Skip to content
This repository was archived by the owner on Jan 6, 2024. It is now read-only.

Commit a016b91

Browse files
authored
fix: ungrouped has not been initialized when remove group
1 parent 1ae8f67 commit a016b91

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/client/store/tab.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ function getGroupedTab(dataSource: Tab[], enabledOnly = false) {
162162
return Object.entries(groups) as [AllTabGroup, { show: boolean; tabs: Tab[] } ][]
163163
}
164164

165+
interface GroupData { name: string; index: number }
166+
165167
function initGroupData(tabs: Tab[]) {
166168
return tabs.reduce((groups, tab) => {
167169
const group = tab.group
@@ -175,7 +177,7 @@ function initGroupData(tabs: Tab[]) {
175177
name: tab.title, index: tab.groupIndex,
176178
})
177179
return groups
178-
}, {} as Record<AllTabGroup, { data: { name: string; index: number }[]; show: boolean }>)
180+
}, {} as Record<AllTabGroup, { data: GroupData[]; show: boolean }>)
179181
}
180182

181183
function updateDisabledTabs(disabledTabNames: string[], disabledGroups: string[] = []) {
@@ -218,6 +220,12 @@ export function getSortedTabs(sourceTabs: Tab[]) {
218220
return tabs
219221
}
220222

223+
function updateUngroupedData(data: GroupData[]) {
224+
if (!groupsData.value[DEFAULT_TAB_GROUP])
225+
createGroup(DEFAULT_TAB_GROUP)
226+
groupsData.value[DEFAULT_TAB_GROUP].data = data
227+
}
228+
221229
export function ungroupAllTabs() {
222230
const tabs = allTabs.value.slice()
223231
const names: string[] = []
@@ -227,7 +235,7 @@ export function ungroupAllTabs() {
227235
names.push(tab.title)
228236
})
229237
allTabs.value = tabs
230-
groupsData.value[DEFAULT_TAB_GROUP].data = names.map(name => ({ name, index: -1 }))
238+
updateUngroupedData(names.map(name => ({ name, index: -1 })))
231239
}
232240

233241
export function resetAllTabs() {
@@ -240,7 +248,7 @@ export function shouldHideTabGroup(groupName: string, tabLength: number) {
240248
}
241249

242250
export function removeTabGroup(group: AllTabGroup) {
243-
const tabs = allTabs.value
251+
const tabs = allTabs.value.slice()
244252
const tabNames: string[] = []
245253
tabs.forEach((item) => {
246254
if (item.group === group) {
@@ -251,7 +259,8 @@ export function removeTabGroup(group: AllTabGroup) {
251259
})
252260
allTabs.value = tabs
253261
Reflect.deleteProperty(groupsData.value, group)
254-
groupsData.value[DEFAULT_TAB_GROUP].data.push(...tabNames.map(name => ({ name, index: -1 })))
262+
263+
updateUngroupedData(tabNames.map(name => ({ name, index: -1 })))
255264
}
256265

257266
export function checkGroupExist(groupName: string) {

0 commit comments

Comments
 (0)