Make DataColum filters type generic
authorMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 4 Jul 2018 13:53:18 +0000 (15:53 +0200)
committerMichal Klobukowski <michal.klobukowski@contractors.roche.com>
Wed, 4 Jul 2018 13:53:18 +0000 (15:53 +0200)
Feature #13703

Arvados-DCO-1.1-Signed-off-by: Michal Klobukowski <michal.klobukowski@contractors.roche.com>

src/components/data-table/data-column.ts
src/components/data-table/data-table.tsx

index bbfea7acd5c6db1e43d224e68d455e5b4e52c491..0440fe2be0066821bd0c9a651450623987ebca9f 100644 (file)
@@ -4,13 +4,13 @@
 
 import { DataTableFilterItem } from "../data-table-filters/data-table-filters";
 
-export interface DataColumn<T> {
+export interface DataColumn<T, F extends DataTableFilterItem = DataTableFilterItem> {
     name: string;
     selected: boolean;
     configurable?: boolean;
     key?: React.Key;
     sortDirection?: SortDirection;
-    filters?: DataTableFilterItem[];
+    filters?: F[];
     render: (item: T) => React.ReactElement<void>;
     renderHeader?: () => React.ReactElement<void> | null;
     width?: string;
index e96839e5d7891b4fff3ffca1baf3f4daa7421023..22ecf4fc2783aa048a6ae1e4703e4f3d50ff2458 100644 (file)
@@ -7,7 +7,7 @@ import { Table, TableBody, TableRow, TableCell, TableHead, TableSortLabel, Style
 import { DataColumn, SortDirection } from './data-column';
 import DataTableFilters, { DataTableFilterItem } from "../data-table-filters/data-table-filters";
 
-export type DataColumns<T> = Array<DataColumn<T>>;
+export type DataColumns<T, F extends DataTableFilterItem = DataTableFilterItem> = Array<DataColumn<T, F>>;
 export interface DataItem {
     key: React.Key;
 }