Skip to content

Commit 73ac70c

Browse files
committed
bug: ghost groups appearing
1 parent 87f257d commit 73ac70c

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

packages/dockview-core/src/__tests__/dockview/dockviewComponent.spec.ts

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,59 @@ describe('dockviewComponent', () => {
272272
});
273273

274274
describe('move group', () => {
275+
test('that moving a popup group into the grid manages view disposals correctly', async () => {
276+
window.open = () => setupMockWindow();
277+
278+
dockview = new DockviewComponent(container, {
279+
createComponent(options) {
280+
switch (options.name) {
281+
case 'default':
282+
return new PanelContentPartTest(
283+
options.id,
284+
options.name
285+
);
286+
default:
287+
throw new Error(`unsupported`);
288+
}
289+
},
290+
});
291+
292+
dockview.layout(600, 1000);
293+
294+
const panel1 = dockview.addPanel({
295+
id: 'panel1',
296+
component: 'default',
297+
});
298+
const panel2 = dockview.addPanel({
299+
id: 'panel2',
300+
component: 'default',
301+
position: { direction: 'right' },
302+
});
303+
const panel3 = dockview.addPanel({
304+
id: 'panel3',
305+
component: 'default',
306+
position: { direction: 'right' },
307+
});
308+
309+
await dockview.addPopoutGroup(panel1.api.group);
310+
311+
expect(panel1.api.location.type).toBe('popout');
312+
expect(dockview.groups.length).toBe(4);
313+
expect(dockview.panels.length).toBe(3);
314+
315+
panel1.api.group.api.moveTo({
316+
group: panel2.api.group,
317+
position: 'left',
318+
});
319+
320+
expect(panel1.api.location.type).toBe('grid');
321+
expect(dockview.groups.length).toBe(3);
322+
expect(dockview.panels.length).toBe(3);
323+
324+
const query = dockview.element.querySelectorAll('.dv-view');
325+
expect(query.length).toBe(3);
326+
});
327+
275328
test('horizontal', () => {
276329
dockview = new DockviewComponent(container, {
277330
createComponent(options) {

packages/dockview-core/src/dockview/dockviewComponent.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2329,6 +2329,7 @@ export class DockviewComponent
23292329
throw new Error('failed to find popout group');
23302330
}
23312331
selectedPopoutGroup.disposable.dispose();
2332+
return;
23322333
}
23332334
}
23342335

0 commit comments

Comments
 (0)