From c792a30932d3e20312d9075cd80c7b3d8625f1e7 Mon Sep 17 00:00:00 2001 From: Syngnat Date: Wed, 8 Jul 2026 14:16:36 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix(query-result):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8DSQL=E6=89=A7=E8=A1=8C=E5=90=8E=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提前解析当前激活结果页 key - 避免构造结果 tab 时读取未初始化变量 - 修复 MySQL SELECT 成功返回后编辑器闪退问题 --- frontend/src/components/QueryEditorResultsPanel.tsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/frontend/src/components/QueryEditorResultsPanel.tsx b/frontend/src/components/QueryEditorResultsPanel.tsx index 2fc50ff7..f488de70 100644 --- a/frontend/src/components/QueryEditorResultsPanel.tsx +++ b/frontend/src/components/QueryEditorResultsPanel.tsx @@ -93,6 +93,12 @@ const QueryEditorResultsPanel: React.FC = ({ const hideTooltipTitle = toggleShortcutLabel ? t('query_editor.results_panel.tooltip.hide_with_shortcut', { shortcut: toggleShortcutLabel }) : t('query_editor.results_panel.tooltip.hide'); + const activeResultKeyExists = activeResultKey === QUERY_EDITOR_SQL_LOG_TAB_KEY + ? shouldShowSqlLogTab + : resultSets.some((result) => result.key === activeResultKey); + const resolvedActiveResultKey = activeResultKeyExists + ? activeResultKey + : resultSets[0]?.key || (shouldShowSqlLogTab ? QUERY_EDITOR_SQL_LOG_TAB_KEY : ''); const handleMessageTextareaKeyDown = (event: React.KeyboardEvent) => { if (!(event.ctrlKey || event.metaKey) || event.altKey || event.shiftKey || event.key.toLowerCase() !== 'a') { @@ -335,12 +341,6 @@ const QueryEditorResultsPanel: React.FC = ({ } : null; const tabItems = logTabItem ? [logTabItem, ...resultTabItems] : resultTabItems; - - const resolvedActiveResultKey = (() => { - if (activeResultKey && tabItems.some((item) => item.key === activeResultKey)) return activeResultKey; - if (resultSets[0]?.key) return resultSets[0].key; - return shouldShowSqlLogTab ? QUERY_EDITOR_SQL_LOG_TAB_KEY : ''; - })(); const activeResultSet = resultSets.find((rs) => rs.key === resolvedActiveResultKey) || null; const activeResultUsesDataGrid = Boolean(activeResultSet && activeResultSet.resultType !== 'message' && !isAffectedRowsResult(activeResultSet));