From 6155bc3c81051081ce641d24dba8a1214d7a0ef8 Mon Sep 17 00:00:00 2001 From: mufazalov Date: Fri, 22 Mar 2024 15:04:22 +0300 Subject: [PATCH] fix(VirtualTable): make table resizeable by default --- src/components/VirtualTable/TableHead.tsx | 18 ++++++++++++++---- src/components/VirtualTable/constants.ts | 1 + src/containers/Nodes/getNodesColumns.tsx | 1 - src/utils/hooks/useTableResize.ts | 6 ++++-- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/components/VirtualTable/TableHead.tsx b/src/components/VirtualTable/TableHead.tsx index 17dc9d64d4..06e5340c3b 100644 --- a/src/components/VirtualTable/TableHead.tsx +++ b/src/components/VirtualTable/TableHead.tsx @@ -6,7 +6,13 @@ import type { } from '../../utils/hooks/useTableResize'; import type {Column, OnSort, SortOrderType, SortParams} from './types'; -import {ASCENDING, DEFAULT_SORT_ORDER, DEFAULT_TABLE_ROW_HEIGHT, DESCENDING} from './constants'; +import { + ASCENDING, + DEFAULT_RESIZEABLE, + DEFAULT_SORT_ORDER, + DEFAULT_TABLE_ROW_HEIGHT, + DESCENDING, +} from './constants'; import {b} from './shared'; const COLUMN_NAME_HTML_ATTRIBUTE = 'data-columnname'; @@ -45,6 +51,7 @@ const ColumnSortIcon = ({sortOrder, sortable, defaultSortOrder}: ColumnSortIconP interface TableHeadCellProps { column: Column; + resizeable?: boolean; sortOrder?: SortOrderType; defaultSortOrder: SortOrderType; onSort?: (columnName: string) => void; @@ -55,6 +62,7 @@ interface TableHeadCellProps { export const TableHeadCell = ({ column, + resizeable, sortOrder, defaultSortOrder, onSort, @@ -82,9 +90,7 @@ export const TableHeadCell = ({
({ const sortOrder = sortParams.columnId === column.name ? sortParams.sortOrder : undefined; + const resizeable = + onColumnsResize && (column.resizeable ?? DEFAULT_RESIZEABLE); + return ( {row.Version}; }, sortable: false, - resizeable: true, }; const uptimeColumn: NodesColumn = { diff --git a/src/utils/hooks/useTableResize.ts b/src/utils/hooks/useTableResize.ts index c6948f76ce..481a64b89d 100644 --- a/src/utils/hooks/useTableResize.ts +++ b/src/utils/hooks/useTableResize.ts @@ -1,6 +1,6 @@ import {useCallback, useState} from 'react'; import type {Column as DataTableColumn} from '@gravity-ui/react-data-table'; -import type {Column as VirtualTableColumn} from '../../components/VirtualTable'; +import {DEFAULT_RESIZEABLE, type Column as VirtualTableColumn} from '../../components/VirtualTable'; import {settingsManager} from '../../services/settings'; export type Column = VirtualTableColumn & DataTableColumn; @@ -14,7 +14,9 @@ export const updateColumnsWidth = ( columnsWidthSetup: TableColumnsWidthSetup, ) => { return columns.map((column) => { - if (!column.resizeable) { + const resizeable = column.resizeable ?? DEFAULT_RESIZEABLE; + + if (!resizeable) { return column; } return {...column, width: columnsWidthSetup[column.name] ?? column.width};