diff --git a/webapp/packages/plugin-sql-editor/src/SqlEditorNavigatorService.ts b/webapp/packages/plugin-sql-editor/src/SqlEditorNavigatorService.ts index 47d197da8a..2e1287d07f 100644 --- a/webapp/packages/plugin-sql-editor/src/SqlEditorNavigatorService.ts +++ b/webapp/packages/plugin-sql-editor/src/SqlEditorNavigatorService.ts @@ -132,11 +132,21 @@ export class SqlEditorNavigatorService { if (data.type === SQLEditorNavigationAction.select) { tab.handlerState.currentResultTabId = data.resultId; } else if (data.type === SQLEditorNavigationAction.close) { + const resultTabGroupId = tab.handlerState.resultTabs + .find(resultTab => resultTab.resultTabId === data.resultId)?.groupId; + tab.handlerState.resultTabs.splice( tab.handlerState.resultTabs.findIndex(result => result.resultTabId === data.resultId), 1 ); + const isGroupEmpty = !tab.handlerState.resultTabs.some(resultTab => resultTab.groupId === resultTabGroupId); + + if (isGroupEmpty) { + tab.handlerState.queryTabGroups.splice( + tab.handlerState.queryTabGroups.findIndex(queryTabGroup => queryTabGroup.groupId === resultTabGroupId), 1); + } + if (tab.handlerState.currentResultTabId === data.resultId) { if (tab.handlerState.resultTabs.length > 0) { tab.handlerState.currentResultTabId = tab.handlerState.resultTabs[0].resultTabId;