X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b62944772ff96019c1e497426784690978bb9c96..e8e0182d65a74b1a222127eb8b36f31a906b14c8:/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 96ef9524..28e93bee 100644 --- a/src/components/data-table/data-column.ts +++ b/src/components/data-table/data-column.ts @@ -2,18 +2,19 @@ // // SPDX-License-Identifier: AGPL-3.0 -import { DataTableFilterItem } from "../data-table-filters/data-table-filters"; +import * as 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; - key?: React.Key; + configurable: boolean; sortDirection?: SortDirection; - filters?: F[]; - render: (item: T) => React.ReactElement; - renderHeader?: () => React.ReactElement | null; - width?: string; + filters: DataTableFilters; + render: (item: T) => React.ReactElement; + renderHeader?: () => React.ReactElement; } export enum SortDirection { @@ -22,10 +23,6 @@ export enum SortDirection { NONE = "none" } -export const isColumnConfigurable = (column: DataColumn) => { - return column.configurable === undefined || column.configurable; -}; - export const toggleSortDirection = (column: DataColumn): DataColumn => { return column.sortDirection ? column.sortDirection === SortDirection.ASC @@ -37,3 +34,14 @@ export const toggleSortDirection = (column: DataColumn): DataColumn => export const resetSortDirection = (column: DataColumn): DataColumn => { return column.sortDirection ? { ...column, sortDirection: SortDirection.NONE } : column; }; + +export const createDataColumn = (dataColumn: Partial>): DataColumn => ({ + key: '', + name: '', + selected: true, + configurable: true, + sortDirection: SortDirection.NONE, + filters: createTree(), + render: () => React.createElement('span'), + ...dataColumn, +});