Skip to content

Commit 50ecbb1

Browse files
committed
update
1 parent 49ea658 commit 50ecbb1

7 files changed

Lines changed: 41 additions & 21 deletions

File tree

rollup.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ const plugins = [
2626
terser({
2727
output: { comments: false },
2828
compress: {
29-
drop_console: true,
29+
drop_console: false,
3030
},
3131
}),
3232
];

src/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
export * from "./lib/ReactDataTable/ExtendedColumnDef";
21
export * from "./lib/ReactDataTable/ReactDataTable";
32
export * from "./lib/ReactDataTable/ReactDataTableProps";
43
export * from "./lib/ReactDataTable/translations";

src/lib/ReactDataTable/ExtendedColumnDef.ts

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/lib/ReactDataTable/ReactDataTable.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ReactDataTableRenderer } from "./ReactDataTableRenderer";
77

88
const ReactDataTable = <TData,>(props: ReactDataTableProps<TData>) => {
99
const {
10-
data,
10+
data = [],
1111
columns,
1212
onFilterChange,
1313
onSortingChange,

src/lib/ReactDataTable/ReactDataTableProps.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import { CSSProperties } from "react";
2-
import { ColumnFiltersState, CoreOptions, OnChangeFn, PaginationState, SortingState } from "@tanstack/react-table";
3-
import { ExtendedColumnDef } from "./ExtendedColumnDef";
2+
import { ColumnDef, ColumnFiltersState, CoreOptions, OnChangeFn, PaginationState, SortingState } from "@tanstack/react-table";
43

54
export interface ReactDataTableProps<TData> {
65
/**
76
* data to display in the table
87
*/
9-
data: TData[];
8+
data?: TData[];
109

1110
/**
1211
* columns to display in the table. You can use the createColumnHelper to create the columns
1312
* ref: https://tanstack.com/table/v8/docs/guide/column-defs#column-helpers
1413
*/
15-
columns: ExtendedColumnDef<TData>[];
14+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
15+
columns: ColumnDef<TData, any>[];
1616

1717
/**
1818
* Called when the user changes the filters.

src/lib/ReactDataTable/ReactDataTableRenderer.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
33
import { Paging } from "@neolution-ch/react-pattern-ui";
44
import { PaginationState, Table, flexRender } from "@tanstack/react-table";
55
import { Spinner, Table as ReactStrapTable, Input } from "reactstrap";
6-
import { ExtendedColumnDef } from "./ExtendedColumnDef";
76
import { ReactDataTableProps } from "./ReactDataTableProps";
87

98
interface ReactDataTableRendererProps<TData>
@@ -49,7 +48,11 @@ const ReactDataTableRenderer = <TData,>(props: ReactDataTableRendererProps<TData
4948
</tr>
5049
<tr key={`${headerGroup.id}-col-filters`}>
5150
{headerGroup.headers.map((header) => {
52-
const extendedColumnDef = header.column.columnDef as ExtendedColumnDef<TData>;
51+
const {
52+
column: {
53+
columnDef: { meta },
54+
},
55+
} = header;
5356

5457
return (
5558
<>
@@ -76,12 +79,18 @@ const ReactDataTableRenderer = <TData,>(props: ReactDataTableRendererProps<TData
7679

7780
{header.column.getCanFilter() && (
7881
<>
79-
{extendedColumnDef.columnFilterDropDownConfig ? (
80-
<Input type="select" onChange={(e) => header.column.setFilterValue(e.target.value)} bsSize="sm">
82+
{meta?.dropdownFilter ? (
83+
<Input
84+
type="select"
85+
onChange={(e) => {
86+
header.column.setFilterValue(e.target.value);
87+
}}
88+
bsSize="sm"
89+
>
8190
<option value="">All</option>
82-
{extendedColumnDef.columnFilterDropDownConfig.values.map((value) => (
83-
<option key={value} value={value}>
84-
{value}
91+
{meta.dropdownFilter.options.map(({ label, value }, i) => (
92+
<option key={i} value={value}>
93+
{label}
8594
</option>
8695
))}
8796
</Input>

src/react-table.d.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars */
2+
import "@tanstack/react-table";
3+
import { RowData } from "@tanstack/react-table";
4+
5+
interface DropdownColumnFilterOption {
6+
label: string;
7+
value: string | number;
8+
}
9+
10+
interface DropdownColumnFilter {
11+
options: DropdownColumnFilterOption[];
12+
}
13+
14+
declare module "@tanstack/table-core" {
15+
interface ColumnMeta<TData extends RowData, TValue> {
16+
dropdownFilter?: DropdownColumnFilter;
17+
parseValueAs?: "number" | "date";
18+
}
19+
}

0 commit comments

Comments
 (0)