Skip to content

Commit 9637c3f

Browse files
committed
accept list additionally to record
1 parent 49f2cf8 commit 9637c3f

1 file changed

Lines changed: 12 additions & 6 deletions

File tree

src/lib/utils/createReactDataTableColumnHelper.ts

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
import { ColumnDef, ColumnHelper, DeepKeys, RowData, createColumnHelper } from "@tanstack/react-table";
2+
import { DropdownColumnFilterOption } from "src/react-table";
23

34
interface ReactDataTableColumnHelper<TData extends RowData> extends ColumnHelper<TData> {
45
createEnumColumn: <TEnum extends string | number>(
56
columnKey: DeepKeys<TData>,
6-
enumTranslations: Record<TEnum, string>,
7+
enumTranslations: Record<TEnum, string> | DropdownColumnFilterOption[],
78
columndDef?: Partial<ColumnDef<TData, TEnum>>,
89
) => ColumnDef<TData, TEnum>;
910
}
@@ -18,14 +19,19 @@ const createReactDataTableColumnHelper = <TData extends RowData>(): ReactDataTab
1819
createEnumColumn: (columnKey, enumTranslations, columndDef) =>
1920
// eslint-disable-next-line @typescript-eslint/no-explicit-any
2021
columnHelper.accessor(columnKey as any, {
21-
cell: (cell) => enumTranslations[cell.getValue()],
22+
cell: (cell) =>
23+
Array.isArray(enumTranslations)
24+
? enumTranslations.find((x) => x.value === cell.getValue())?.label
25+
: enumTranslations[cell.getValue()],
2226
enableColumnFilter: true,
2327
meta: {
2428
dropdownFilter: {
25-
options: Object.entries(enumTranslations).map(([key, value]) => ({
26-
label: value as string,
27-
value: key,
28-
})),
29+
options: Array.isArray(enumTranslations)
30+
? enumTranslations
31+
: Object.entries(enumTranslations).map(([key, value]) => ({
32+
label: value as string,
33+
value: key,
34+
})),
2935
},
3036
},
3137
...columndDef,

0 commit comments

Comments
 (0)