From b1174861d4c28ccc9058182f3e22bf7b114719dd Mon Sep 17 00:00:00 2001 From: Syngnat <92659908+Syngnat@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:24:12 +0800 Subject: [PATCH] feat(query-result): apply global hidden columns --- .../components/QueryEditorResultsPanel.tsx | 455 ++++-------------- 1 file changed, 92 insertions(+), 363 deletions(-) diff --git a/frontend/src/components/QueryEditorResultsPanel.tsx b/frontend/src/components/QueryEditorResultsPanel.tsx index 0307b6b1..2fc50ff7 100644 --- a/frontend/src/components/QueryEditorResultsPanel.tsx +++ b/frontend/src/components/QueryEditorResultsPanel.tsx @@ -4,6 +4,7 @@ import { BugOutlined, CloseOutlined, CopyOutlined, EyeInvisibleOutlined, RobotOu import type { EditRowLocator } from '../utils/rowLocator'; import type { QueryResultPaginationState } from '../utils/queryResultPagination'; +import { filterColumnNamesByGlobalHiddenColumns, useGlobalHiddenColumns } from '../utils/globalHiddenColumns'; import { t as defaultTranslate } from '../i18n'; import { useOptionalI18n } from '../i18n/provider'; import DataGrid from './DataGrid'; @@ -57,6 +58,11 @@ interface QueryEditorResultsPanelProps { const isAffectedRowsResult = (result: QueryEditorResultSet): boolean => result.columns.length === 1 && result.columns[0] === 'affectedRows'; +const resolveVisibleQueryResultColumns = (columns: string[], globalHiddenColumns: string[]): string[] => { + const visibleColumns = filterColumnNamesByGlobalHiddenColumns(columns, globalHiddenColumns); + return visibleColumns.length > 0 || columns.length === 0 ? visibleColumns : columns; +}; + const QueryEditorResultsPanel: React.FC = ({ resultSets, activeResultKey, @@ -81,14 +87,13 @@ const QueryEditorResultsPanel: React.FC = ({ }) => { const i18n = useOptionalI18n(); const t = i18n?.t ?? defaultTranslate; + const globalHiddenColumns = useGlobalHiddenColumns(); const shouldShowSqlLogTab = isV2Ui && (sqlLogCount > 0 || activeResultKey === QUERY_EDITOR_SQL_LOG_TAB_KEY); const logTabCountLabel = sqlLogCount > 999 ? '999+' : String(sqlLogCount); - const resolvedResultSetKey = activeResultKey && resultSets.some((rs) => rs.key === activeResultKey) - ? activeResultKey - : (resultSets[0]?.key || ''); const hideTooltipTitle = toggleShortcutLabel ? t('query_editor.results_panel.tooltip.hide_with_shortcut', { shortcut: toggleShortcutLabel }) : t('query_editor.results_panel.tooltip.hide'); + const handleMessageTextareaKeyDown = (event: React.KeyboardEvent) => { if (!(event.ctrlKey || event.metaKey) || event.altKey || event.shiftKey || event.key.toLowerCase() !== 'a') { return; @@ -98,11 +103,10 @@ const QueryEditorResultsPanel: React.FC = ({ event.currentTarget.focus(); event.currentTarget.select(); }; + const handleCopyMessageText = async (text: string) => { const safeText = String(text || ''); - if (!safeText.trim()) { - return; - } + if (!safeText.trim()) return; try { if (typeof navigator?.clipboard?.writeText !== 'function') { throw new Error(t('query_editor.results_panel.message.copy_unsupported')); @@ -115,6 +119,7 @@ const QueryEditorResultsPanel: React.FC = ({ })); } }; + const renderMessageBlock = ({ text, title, @@ -135,55 +140,27 @@ const QueryEditorResultsPanel: React.FC = ({ marginTop?: number; }) => (
{title ? {title} : } -
-
+