X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/a4e5f7fa69a27b64b65a47ebee5f5ebc306c6982..e239324108497e94222407d62b9c70ddffa42ab4:/src/components/data-table/data-column.ts diff --git a/src/components/data-table/data-column.ts b/src/components/data-table/data-column.ts index a5f95506..f32fea2b 100644 --- a/src/components/data-table/data-column.ts +++ b/src/components/data-table/data-column.ts @@ -2,16 +2,23 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from "react"; -import { DataTableFilterItem } from "../data-table-filters/data-table-filters"; +import React from "react"; +import { DataTableFilters } from "../data-table-filters/data-table-filters-tree"; +import { createTree } from 'models/tree'; -export interface DataColumn { +export interface DataColumn { key?: React.Key; name: string; selected: boolean; configurable: boolean; + + /** + * If set to true, filters on this column will be displayed in a + * radio group and only one filter can be selected at a time. + */ + mutuallyExclusiveFilters?: boolean; sortDirection?: SortDirection; - filters: F[]; + filters: DataTableFilters; render: (item: T) => React.ReactElement; renderHeader?: () => React.ReactElement; } @@ -34,13 +41,13 @@ export const resetSortDirection = (column: DataColumn): DataColumn => { return column.sortDirection ? { ...column, sortDirection: SortDirection.NONE } : column; }; -export const createDataColumn = (dataColumn: Partial>): DataColumn => ({ +export const createDataColumn = (dataColumn: Partial>): DataColumn => ({ key: '', name: '', selected: true, configurable: true, sortDirection: SortDirection.NONE, - filters: [], + filters: createTree(), render: () => React.createElement('span'), ...dataColumn, });