🐛 fix(tabs): 修复对象编辑页关闭后未回到来源标签

- 为 SQL 超链接打开的对象标签记录来源标签

- 关闭当前对象标签时优先回到来源标签

- 补充表对象与对象编辑标签关闭回退测试
This commit is contained in:
Syngnat
2026-06-28 20:03:15 +08:00
parent fee703e879
commit 730d4bb1ab
5 changed files with 115 additions and 5 deletions

View File

@@ -774,6 +774,7 @@ const QueryEditor: React.FC<{ tab: TabData; isActive?: boolean }> = ({ tab, isAc
const addTab = useStore(state => state.addTab);
const setActiveContext = useStore(state => state.setActiveContext);
const updateQueryTabDraft = useStore(state => state.updateQueryTabDraft);
const activeTabId = useStore(state => state.activeTabId);
const savedQueries = useStore(state => state.savedQueries);
const currentConnectionIdRef = useRef(currentConnectionId);
const currentDbRef = useRef(currentDb);
@@ -2115,8 +2116,9 @@ const QueryEditor: React.FC<{ tab: TabData; isActive?: boolean }> = ({ tab, isAc
dbName: targetDbName,
query: editSql,
queryMode: 'object-edit',
returnToTabId: activeTabId || undefined,
});
}, [addTab]);
}, [activeTabId, addTab]);
const openDefinitionObjectEditTab = useCallback(async (
navigationTarget: Extract<QueryEditorNavigationTarget, { type: 'view' | 'materialized-view' | 'sequence' | 'package' }>,
@@ -2204,8 +2206,9 @@ const QueryEditor: React.FC<{ tab: TabData; isActive?: boolean }> = ({ tab, isAc
objectLabel,
),
queryMode: 'object-edit',
returnToTabId: activeTabId || undefined,
});
}, [addTab]);
}, [activeTabId, addTab]);
const openTriggerObjectEditTab = useCallback(async (
navigationTarget: Extract<QueryEditorNavigationTarget, { type: 'trigger' }>,
@@ -2240,8 +2243,9 @@ const QueryEditor: React.FC<{ tab: TabData; isActive?: boolean }> = ({ tab, isAc
dbName: targetDbName,
query: buildEditableTriggerSql(targetTriggerName, latestDefinition, { translate }),
queryMode: 'object-edit',
returnToTabId: activeTabId || undefined,
});
}, [addTab]);
}, [activeTabId, addTab]);
// Setup Autocomplete and Editor
const handleEditorDidMount: OnMount = (editor, monaco) => {
@@ -2603,6 +2607,7 @@ const QueryEditor: React.FC<{ tab: TabData; isActive?: boolean }> = ({ tab, isAc
initialViewMode: 'fields',
initialViewModeRequestId: String(Date.now()),
objectType: 'table',
returnToTabId: activeTabId || undefined,
});
return;
}