diff options
| -rw-r--r-- | components/client-data-table/data-table-filter-list.tsx | 22 | ||||
| -rw-r--r-- | components/client-data-table/data-table.tsx | 2 |
2 files changed, 23 insertions, 1 deletions
diff --git a/components/client-data-table/data-table-filter-list.tsx b/components/client-data-table/data-table-filter-list.tsx index 6a9da8ba..396a8ee2 100644 --- a/components/client-data-table/data-table-filter-list.tsx +++ b/components/client-data-table/data-table-filter-list.tsx @@ -94,7 +94,27 @@ export function ClientDataTableAdvancedFilter<TData>({ } }) - table.setColumnFilters(newColumnFilters) + if (joinOperator === "and") { + table.setColumnFilters(newColumnFilters) + table.setGlobalFilter(undefined) // globalFilter 클리어 + } else { + table.setColumnFilters([]) // columnFilters 클리어 + + // globalFilterFn이 기대하는 형태로 변환 + const globalFilters = filters.map((f) => ({ + columnId: String(f.id), + filterValue: { + operator: f.operator, + value: f.type === "number" ? parseFloat(String(f.value)) : f.value, + }, + type: f.type + })) + + table.setGlobalFilter({ + filters: globalFilters, + joinOperator + }) + } }, [filters, joinOperator, table]) diff --git a/components/client-data-table/data-table.tsx b/components/client-data-table/data-table.tsx index a38de73d..3e009302 100644 --- a/components/client-data-table/data-table.tsx +++ b/components/client-data-table/data-table.tsx @@ -35,6 +35,7 @@ import { ClientDataTableAdvancedToolbar } from "./data-table-toolbar" import { ClientDataTablePagination } from "./data-table-pagination" import { DataTableResizer } from "./data-table-resizer" import { useAutoSizeColumns } from "@/hooks/useAutoSizeColumns" +import { globalFilterFn } from "./table-filters" interface DataTableProps<TData, TValue> { columns: ColumnDef<TData, TValue>[] @@ -101,6 +102,7 @@ export function ClientDataTable<TData, TValue>({ onColumnFiltersChange: setColumnFilters, onColumnVisibilityChange: setColumnVisibility, onGroupingChange: setGrouping, + globalFilterFn: globalFilterFn as any, getCoreRowModel: getCoreRowModel(), getFilteredRowModel: getFilteredRowModel(), getPaginationRowModel: getPaginationRowModel(), |
