X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/1a9eb2261e6030ba78078e2a206bad27653f2475..ea80145c5d632a647cf583cf0ebbf2a866d85549:/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 f3d9576d..06744c3a 100644 --- a/src/components/data-table/data-column.ts +++ b/src/components/data-table/data-column.ts @@ -2,28 +2,38 @@ // // SPDX-License-Identifier: AGPL-3.0 -export interface DataColumn { +import { DataTableFilterItem } from "../data-table-filters/data-table-filters"; + +export interface DataColumn { name: string; selected: boolean; configurable?: boolean; key?: React.Key; sortDirection?: SortDirection; - onSortToggle?: () => void; + filters?: F[]; render: (item: T) => React.ReactElement; renderHeader?: () => React.ReactElement | null; + width?: string; } -export type SortDirection = "asc" | "desc"; +export enum SortDirection { + Asc = "asc", + Desc = "desc", + None = "none" +} export const isColumnConfigurable = (column: DataColumn) => { return column.configurable === undefined || column.configurable; }; export const toggleSortDirection = (column: DataColumn): DataColumn => { - const sortDirection = column.sortDirection === undefined || column.sortDirection === "desc" ? "asc" : "desc"; - return { ...column, sortDirection }; + return column.sortDirection + ? column.sortDirection === SortDirection.Asc + ? { ...column, sortDirection: SortDirection.Desc } + : { ...column, sortDirection: SortDirection.Asc } + : column; }; export const resetSortDirection = (column: DataColumn): DataColumn => { - return { ...column, sortDirection: undefined }; + return column.sortDirection ? { ...column, sortDirection: SortDirection.None } : column; };