diff --git a/apps/desktop/src/components/grid/DataGrid.vue b/apps/desktop/src/components/grid/DataGrid.vue index cf4095ae5d..ae7bc1fb23 100644 --- a/apps/desktop/src/components/grid/DataGrid.vue +++ b/apps/desktop/src/components/grid/DataGrid.vue @@ -1235,6 +1235,9 @@ const localColumnFilterRuntime = useDataGridColumnFilters({ waitForTableMeta, applyWhereFilter, resetGridVerticalScroll: () => resetLocalFilterGridScroll(), + onOpen: () => { + localFilterPopoverOffsetX.value = 0; + }, onClose: () => { onLocalFilterResizeEnd(); localFilterPopoverOffsetX.value = 0; diff --git a/apps/desktop/src/composables/useDataGridColumnFilters.ts b/apps/desktop/src/composables/useDataGridColumnFilters.ts index 2e0d498f04..d592a56bcd 100644 --- a/apps/desktop/src/composables/useDataGridColumnFilters.ts +++ b/apps/desktop/src/composables/useDataGridColumnFilters.ts @@ -62,6 +62,7 @@ export interface UseDataGridColumnFiltersOptions { waitForTableMeta: () => Promise; applyWhereFilter: () => Promise; resetGridVerticalScroll: () => void; + onOpen?: () => void; onClose?: () => void; emitLocalFiltersChange: (filters: Record) => void; } @@ -170,6 +171,7 @@ export function useDataGridColumnFilters(options: UseDataGridColumnFiltersOption } function openLocalFilter(columnIndex: number, requestedMode: DataGridLocalFilterMode = "local") { + options.onOpen?.(); state.localFilterSearch.value = ""; const mode = requestedMode === "server" && options.canUseServerColumnFilter.value ? "server" : "local"; const allKeys = mode === "server" ? [] : buildLocalFilterOptions(columnIndex).map((option) => option.key);