summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/client-data-table/data-table-filter-list.tsx22
-rw-r--r--components/client-data-table/data-table.tsx2
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(),