fix(electron): allow close pinned tab (#7732)

This commit is contained in:
pengx17 2024-08-05 08:03:12 +00:00
parent 5f52547d9e
commit 51848ff6c3
No known key found for this signature in database
GPG Key ID: 23F23D9E8B3971ED
2 changed files with 4 additions and 8 deletions

View File

@ -10,7 +10,6 @@ import {
export const showTabContextMenu = async (tabId: string, viewIndex: number) => {
const workbenches = WebContentViewsManager.instance.tabViewsMeta.workbenches;
const unpinned = workbenches.filter(w => !w.pinned);
const tabMeta = workbenches.find(w => w.id === tabId);
if (!tabMeta) {
return;
@ -63,7 +62,7 @@ export const showTabContextMenu = async (tabId: string, viewIndex: number) => {
},
},
...(unpinned.length > 0
...(workbenches.length > 0
? ([
{ type: 'separator' },
{

View File

@ -125,6 +125,7 @@ export type AddTabOption = {
* Whether to show the tab after adding.
*/
show?: boolean;
pinned?: boolean;
};
export class WebContentViewsManager {
@ -328,11 +329,6 @@ export class WebContentViewsManager {
return;
}
const targetWorkbench = this.tabViewsMeta.workbenches[index];
if (targetWorkbench.pinned) {
return;
}
const workbenches = this.tabViewsMeta.workbenches.toSpliced(index, 1);
// if the active view is closed, switch to the next view (index unchanged)
// if the new index is out of bound, switch to the last view
@ -398,6 +394,7 @@ export class WebContentViewsManager {
}
: undefined,
};
option.pinned ??= false;
const workbenches = this.tabViewsMeta.workbenches;
const newKey = this.generateViewId('app');
@ -422,7 +419,7 @@ export class WebContentViewsManager {
activeViewIndex: 0,
views: views,
id: newKey,
pinned: targetItem?.pinned ?? false,
pinned: option.pinned,
};
this.patchTabViewsMeta({