From 43ff5a91e75fdc83996f4a6c2cfffdc8eb72d21b Mon Sep 17 00:00:00 2001 From: t8y2 <1156263951@qq.com> Date: Tue, 21 Jul 2026 23:14:42 +0800 Subject: [PATCH] feat(grid): include comments in column search --- apps/desktop/src/components/grid/DataGrid.vue | 7 ++----- packages/app-tests/objectBrowserTableInfo.test.ts | 7 +++++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/desktop/src/components/grid/DataGrid.vue b/apps/desktop/src/components/grid/DataGrid.vue index 8f795f60c..907803a2f 100644 --- a/apps/desktop/src/components/grid/DataGrid.vue +++ b/apps/desktop/src/components/grid/DataGrid.vue @@ -201,6 +201,7 @@ import type { DataGridSortDirection, DataGridSortMode } from "@/lib/dataGrid/dat import { DATA_GRID_COMPACT_TOPBAR_WIDTH, type DataGridReloadIntent, type DataGridToolbarActionCapability, type DataGridToolbarAutoRefreshCapability, type DataGridToolbarSaveCapability } from "@/lib/dataGrid/dataGridToolbar"; import { getTableMetadataCapabilities } from "@/lib/table/tableMetadataCapabilities"; import { getTableStructureCapabilities } from "@/lib/table/tableStructureCapabilities"; +import { filterObjectBrowserTableColumns } from "@/lib/table/objectBrowserTableInfo"; import { reserveDataGridHeaderLine } from "@/lib/dataGrid/dataGridHeaderLayout"; import { supportsTableStructureEditing } from "@/lib/database/databaseCapabilities"; import { rememberDataGridConditionHistory } from "@/lib/dataGrid/dataGridConditionHistory"; @@ -7081,11 +7082,7 @@ onUnmounted(() => { stopLoadingElapsedTimer(); }); -const filteredColumns = computed(() => { - if (!searchQuery.value) return props.tableMeta?.columns ?? []; - const q = searchQuery.value.toLowerCase(); - return (props.tableMeta?.columns ?? []).filter((c) => c.name.toLowerCase().includes(q) || c.data_type.toLowerCase().includes(q)); -}); +const filteredColumns = computed(() => filterObjectBrowserTableColumns(props.tableMeta?.columns ?? [], searchQuery.value)); const filteredIndexes = computed(() => { if (!searchQuery.value) return indexes.value; diff --git a/packages/app-tests/objectBrowserTableInfo.test.ts b/packages/app-tests/objectBrowserTableInfo.test.ts index 7063ba3f8..04f7db0e7 100644 --- a/packages/app-tests/objectBrowserTableInfo.test.ts +++ b/packages/app-tests/objectBrowserTableInfo.test.ts @@ -1,4 +1,5 @@ import { strict as assert } from "node:assert"; +import { readFileSync } from "node:fs"; import { test } from "vitest"; import { filterObjectBrowserTableColumns } from "../../apps/desktop/src/lib/table/objectBrowserTableInfo.ts"; @@ -46,3 +47,9 @@ test("returns every column for empty searches and preserves match order", () => ["note", "empty_note"], ); }); + +test("keeps the data-grid table properties search on the shared column filter", () => { + const source = readFileSync("apps/desktop/src/components/grid/DataGrid.vue", "utf8"); + + assert.match(source, /filterObjectBrowserTableColumns\(props\.tableMeta\?\.columns \?\? \[\], searchQuery\.value\)/); +});