diff --git a/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx b/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx index 42754defb92..2e70dc6aed0 100644 --- a/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx +++ b/frontend/packages/console-app/src/components/data-view/ConsoleDataView.tsx @@ -352,7 +352,6 @@ export const ConsoleDataView = < => (column as any)?.cell !== undefined; +const isDataViewConfigurableColumn = ( + column: ConsoleDataViewColumn, +): column is ConsoleDataViewColumn & { cell: ReactNode } => column?.cell !== undefined; export const useConsoleDataViewData = < TData, @@ -37,7 +33,7 @@ export const useConsoleDataViewData = < isResizable = true, selection, }: { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; filteredData: TData[]; filters: TFilters; getDataViewRows: GetDataViewRows; @@ -97,10 +93,8 @@ export const useConsoleDataViewData = < return activeColumns.map(({ id, title, sort, props, resizableProps }, index) => { // Filter out custom Console props that aren't valid PatternFly ThProps - const { isActionCell, ...validThProps } = props || {}; - const headerProps: ThProps = { - ...validThProps, + ...props, dataLabel: title, }; @@ -133,7 +127,7 @@ export const useConsoleDataViewData = < return { id, title, - sortFunction: sort, + sort, props: headerProps, resizableProps: isResizable ? resizableProps : undefined, cell: title ? ( @@ -141,7 +135,7 @@ export const useConsoleDataViewData = < ) : ( {t('Actions')} ), - }; + } satisfies ConsoleDataViewColumn; }); }, [activeColumns, t, isResizable, selection, filteredData]); @@ -157,14 +151,14 @@ export const useConsoleDataViewData = < return filteredData; } - if (typeof sortColumn.sortFunction === 'string') { + if (typeof sortColumn.sort === 'string') { return filteredData.sort( - sortResourceByValue(sortDirection, (obj) => _.get(obj, sortColumn.sortFunction as string)), + sortResourceByValue(sortDirection, (obj) => _.get(obj, sortColumn.sort as string)), ); } - if (typeof sortColumn.sortFunction === 'function') { - return sortColumn.sortFunction(filteredData, sortDirection); + if (typeof sortColumn.sort === 'function') { + return sortColumn.sort(filteredData, sortDirection); } return filteredData; @@ -186,16 +180,19 @@ export const useConsoleDataViewData = < const dataViewRows = getDataViewRows(transformedData, dataViewColumns); // Apply sort state and select-all handler updates to columns independently - const dataViewColumnsWithSortApplied = useMemo( + const dataViewColumnsWithSortApplied = useMemo( () => dataViewColumns.map((column) => { if (!isDataViewConfigurableColumn(column)) { - return column; + return { + ...column, + cell: null, + }; } let updatedProps = column.props; - if (column.sortFunction !== undefined && column.props.sort) { + if (column.sort !== undefined && column.props.sort) { updatedProps = { ...updatedProps, sort: { diff --git a/frontend/packages/console-app/src/components/nodes/NodesPage.tsx b/frontend/packages/console-app/src/components/nodes/NodesPage.tsx index eb712bf90f5..d4f30ba65f9 100644 --- a/frontend/packages/console-app/src/components/nodes/NodesPage.tsx +++ b/frontend/packages/console-app/src/components/nodes/NodesPage.tsx @@ -35,7 +35,6 @@ import type { NodeCertificateSigningRequestKind, OwnerReference, RowProps, - TableColumn, } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import type { NodeMetrics } from '@console/internal/actions/ui'; import { setNodeMetrics } from '@console/internal/actions/ui'; @@ -177,12 +176,12 @@ const kind = 'Node'; const useNodesColumns = ( vmsEnabled: boolean, isOpenShift5: boolean, -): { columns: TableColumn[]; resetAllColumnWidths: () => void } => { +): { columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void } => { const { t } = useTranslation('console-app'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(NodeModel); const isAdmin = useFlag(FLAGS.CAN_LIST_NS); - const columns = useMemo( + const columns = useMemo[]>( () => [ createSelectionColumn(), { @@ -192,7 +191,7 @@ const useNodesColumns = ( resizableProps: getResizableProps(nodeColumnInfo.name.id), props: { ...getNameColumnProps(true, true), - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -201,7 +200,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeReadiness, 'False'), resizableProps: getResizableProps(nodeColumnInfo.status.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ...(isOpenShift5 @@ -212,7 +211,7 @@ const useNodesColumns = ( sort: 'groups', resizableProps: getResizableProps(nodeColumnInfo.groups.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ] @@ -223,7 +222,7 @@ const useNodesColumns = ( sort: 'machineOwner.name', resizableProps: getResizableProps(nodeColumnInfo.machineOwner.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ...(vmsEnabled @@ -236,7 +235,7 @@ const useNodesColumns = ( props: isAdmin ? undefined : { - modifier: 'nowrap', + modifier: 'nowrap' as const, info: { tooltip: t( 'This count is based on your access permissions and might not include all virtual machines. Contact your administrator for full access.', @@ -255,7 +254,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodePods, 0), resizableProps: getResizableProps(nodeColumnInfo.pods.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -264,7 +263,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeMemory, 0), resizableProps: getResizableProps(nodeColumnInfo.memory.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -273,7 +272,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeCPU, 0), resizableProps: getResizableProps(nodeColumnInfo.cpu.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -282,7 +281,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeRolesSort, ''), resizableProps: getResizableProps(nodeColumnInfo.role.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -292,7 +291,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeArch, ''), resizableProps: getResizableProps(nodeColumnInfo.architecture.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -302,7 +301,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeFS, 0), resizableProps: getResizableProps(nodeColumnInfo.filesystem.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -312,7 +311,7 @@ const useNodesColumns = ( sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(nodeColumnInfo.created.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -322,7 +321,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeInstanceType, ''), resizableProps: getResizableProps(nodeColumnInfo.instanceType.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -332,7 +331,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeMachine, ''), resizableProps: getResizableProps(nodeColumnInfo.machine.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -342,7 +341,7 @@ const useNodesColumns = ( sort: 'machineConfigPool.metadata.name', resizableProps: getResizableProps(nodeColumnInfo.machineConfigPool.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -352,7 +351,7 @@ const useNodesColumns = ( sort: 'metadata.labels', resizableProps: getResizableProps(nodeColumnInfo.labels.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(nodeColumnInfo.labels.id)), }, additional: true, @@ -363,7 +362,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeZone, ''), resizableProps: getResizableProps(nodeColumnInfo.zone.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -373,7 +372,7 @@ const useNodesColumns = ( sort: sortWithCSRResource(nodeUptime, ''), resizableProps: getResizableProps(nodeColumnInfo.uptime.id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, diff --git a/frontend/packages/console-app/src/components/pdb/PDBList.tsx b/frontend/packages/console-app/src/components/pdb/PDBList.tsx index b536e08fe88..d18d49313ef 100644 --- a/frontend/packages/console-app/src/components/pdb/PDBList.tsx +++ b/frontend/packages/console-app/src/components/pdb/PDBList.tsx @@ -7,9 +7,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { ResourceLink } from '@console/internal/components/utils/resource-link'; import { Selector } from '@console/internal/components/utils/selector'; import { LoadingBox } from '@console/internal/components/utils/status-box'; @@ -75,14 +77,14 @@ const getDataViewRows: GetDataViewRows = (data, columns }); const usePDBColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('console-app'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(PodDisruptionBudgetModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -91,7 +93,7 @@ const usePDBColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -100,7 +102,7 @@ const usePDBColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -109,7 +111,7 @@ const usePDBColumns = (): { sort: 'spec.selector', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -118,7 +120,7 @@ const usePDBColumns = (): { sort: 'spec.minAvailable', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -127,7 +129,7 @@ const usePDBColumns = (): { sort: 'status.disruptionsAllowed', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -136,7 +138,7 @@ const usePDBColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-class.tsx b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-class.tsx index ff913f4ffd9..d2488030316 100644 --- a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-class.tsx +++ b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-class.tsx @@ -8,9 +8,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import { ListPageBody, ListPageCreate, @@ -81,35 +83,35 @@ const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('console-app'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(VolumeSnapshotClassModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Driver'), sort: 'driver', id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Deletion policy'), sort: 'deletionPolicy', id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content.tsx b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content.tsx index 2ce417f34b8..0db94e45520 100644 --- a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content.tsx +++ b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot-content.tsx @@ -7,9 +7,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import { ListPageBody, ListPageCreate, @@ -105,7 +107,7 @@ const getDataViewRows: GetDataViewRows = (data, colum }); const useVolumeSnapshotContentColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('console-app'); @@ -113,14 +115,14 @@ const useVolumeSnapshotContentColumns = (): { VolumeSnapshotContentModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Status'), @@ -128,7 +130,7 @@ const useVolumeSnapshotContentColumns = (): { data.sort(sortResourceByValue(direction, sorts.volumeSnapshotStatus)), id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Size'), @@ -136,28 +138,28 @@ const useVolumeSnapshotContentColumns = (): { data.sort(sortResourceByValue(direction, sorts.volumeSnapshotContentSize)), id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('VolumeSnapshot'), sort: 'spec.volumeSnapshotRef.name', id: tableColumnInfo[3].id, resizableProps: getResizableProps(tableColumnInfo[3].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('SnapshotClass'), sort: 'spec.volumeSnapshotClassName', id: tableColumnInfo[4].id, resizableProps: getResizableProps(tableColumnInfo[4].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Created at'), sort: 'metadata.creationTimestamp', id: tableColumnInfo[5].id, resizableProps: getResizableProps(tableColumnInfo[5].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot.tsx b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot.tsx index 80e2912098d..dfadab0ff5f 100644 --- a/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot.tsx +++ b/frontend/packages/console-app/src/components/volume-snapshot/volume-snapshot.tsx @@ -11,9 +11,12 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { ResourceFilters, GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + ResourceFilters, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import { ListPageBody, ListPageHeader, @@ -146,11 +149,11 @@ const getDataViewRows: GetDataViewRows[]; resetAllColumnWidths: () => void } => { +): { columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void } => { const { t } = useTranslation('console-app'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(VolumeSnapshotModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { @@ -158,14 +161,14 @@ const useVolumeSnapshotColumns = ( sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Namespace'), sort: 'metadata.namespace', id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Status'), @@ -173,7 +176,7 @@ const useVolumeSnapshotColumns = ( data.sort(sortResourceByValue(direction, sorts.volumeSnapshotStatus)), id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Size'), @@ -181,7 +184,7 @@ const useVolumeSnapshotColumns = ( data.sort(sortResourceByValue(direction, sorts.volumeSnapshotSize)), id: tableColumnInfo[3].id, resizableProps: getResizableProps(tableColumnInfo[3].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Source'), @@ -189,14 +192,14 @@ const useVolumeSnapshotColumns = ( data.sort(sortResourceByValue(direction, sorts.volumeSnapshotSource)), id: tableColumnInfo[4].id, resizableProps: getResizableProps(tableColumnInfo[4].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Snapshot content'), sort: 'status.boundVolumeSnapshotContentName', id: tableColumnInfo[5].id, resizableProps: getResizableProps(tableColumnInfo[5].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, disabled: rowData.hideSnapshotContentColumn, }, { @@ -204,14 +207,14 @@ const useVolumeSnapshotColumns = ( sort: 'spec.volumeSnapshotClassName', id: tableColumnInfo[6].id, resizableProps: getResizableProps(tableColumnInfo[6].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Created at'), sort: 'metadata.creationTimestamp', id: tableColumnInfo[7].id, resizableProps: getResizableProps(tableColumnInfo[7].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/packages/console-dynamic-plugin-sdk/src/api/internal-types.ts b/frontend/packages/console-dynamic-plugin-sdk/src/api/internal-types.ts index e6f9c1099fe..6fb2cd9e9d1 100644 --- a/frontend/packages/console-dynamic-plugin-sdk/src/api/internal-types.ts +++ b/frontend/packages/console-dynamic-plugin-sdk/src/api/internal-types.ts @@ -2,7 +2,7 @@ import type { ReactNode, ComponentType, SetStateAction, Dispatch } from 'react'; import type { QuickStart } from '@patternfly/quickstarts'; import type { OverflowMenuProps } from '@patternfly/react-core'; import type { DataViewTh } from '@patternfly/react-data-view/dist/esm/DataViewTable/DataViewTable'; -import type { SortByDirection, ThProps } from '@patternfly/react-table'; +import type { SortByDirection } from '@patternfly/react-table'; import type { Map as ImmutableMap } from 'immutable'; import type { HealthState, @@ -301,28 +301,13 @@ export type ResourceMetadata = { labels?: { [key: string]: string }; }; -// TODO(react18): Remove this type - CONSOLE-5040 -/** - * Temporary type to allow type checking to pass on DataView instances that use - * `TableColumn` as their column type, which is incorrect. - * - * @internal This type is internal to console only. - * - * @deprecated Always use {@link ConsoleDataViewColumn} or {@link DataViewTh}. - */ -export type ConsoleDataViewTh = - | DataViewTh - | { - /** Table head cell node */ - cell?: ReactNode; - /** Props passed to Th */ - props?: ThProps; - }; +export type ConsoleDataViewTh = Partial>; export type ConsoleDataViewColumn = ConsoleDataViewTh & { id: string; title: string; - sortFunction?: string | ((filteredData: TData[], sortDirection: SortByDirection) => TData[]); + sort?: string | ((filteredData: TData[], sortDirection: SortByDirection) => TData[]); + additional?: boolean; resizableProps?: any; }; diff --git a/frontend/packages/console-dynamic-plugin-sdk/src/extensions/console-types.ts b/frontend/packages/console-dynamic-plugin-sdk/src/extensions/console-types.ts index 360f14a13e2..172c80c0266 100644 --- a/frontend/packages/console-dynamic-plugin-sdk/src/extensions/console-types.ts +++ b/frontend/packages/console-dynamic-plugin-sdk/src/extensions/console-types.ts @@ -401,7 +401,6 @@ export type TableColumn = ICell & { id: string; additional?: boolean; sort?: ((data: D[], sortDirection: SortByDirection) => D[]) | string; - resizableProps?: any; }; export type RowProps = { diff --git a/frontend/packages/helm-plugin/src/components/details-page/history/HelmReleaseHistoryTableHelpers.tsx b/frontend/packages/helm-plugin/src/components/details-page/history/HelmReleaseHistoryTableHelpers.tsx index 12d9dd9e296..a103a1f795a 100644 --- a/frontend/packages/helm-plugin/src/components/details-page/history/HelmReleaseHistoryTableHelpers.tsx +++ b/frontend/packages/helm-plugin/src/components/details-page/history/HelmReleaseHistoryTableHelpers.tsx @@ -68,7 +68,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Revision'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 0, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -79,7 +79,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Updated'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 1, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -90,7 +90,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Status'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 2, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -101,7 +101,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Chart name'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 3, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -112,7 +112,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Chart version'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 4, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -123,7 +123,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('App version'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 5, sortBy: { index: sortBy.index, direction: sortBy.direction }, @@ -134,7 +134,7 @@ export const useHelmReleaseHistoryColumns = ( { cell: t('Description'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, } as ThProps, }, { diff --git a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesHeader.tsx b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesHeader.tsx index 37a2c034726..3c93a398cbf 100644 --- a/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesHeader.tsx +++ b/frontend/packages/helm-plugin/src/components/details-page/resources/HelmReleaseResourcesHeader.tsx @@ -1,7 +1,8 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { cellIsStickyProps } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { K8sResourceKind, TableColumn } from '@console/internal/module/k8s'; +import type { ConsoleDataViewColumn } from '@console/app/src/components/data-view/types'; +import type { K8sResourceKind } from '@console/internal/module/k8s'; export const tableColumnInfo = [ { id: 'name' }, @@ -10,7 +11,7 @@ export const tableColumnInfo = [ { id: 'created' }, ]; -export const useHelmReleaseResourcesColumns = (): TableColumn[] => { +export const useHelmReleaseResourcesColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('helm-plugin'); return useMemo( () => [ @@ -20,7 +21,7 @@ export const useHelmReleaseResourcesColumns = (): TableColumn[] sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -28,7 +29,7 @@ export const useHelmReleaseResourcesColumns = (): TableColumn[] id: tableColumnInfo[1].id, sort: 'kind', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -36,7 +37,7 @@ export const useHelmReleaseResourcesColumns = (): TableColumn[] id: tableColumnInfo[2].id, sort: 'status.phase', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -44,7 +45,7 @@ export const useHelmReleaseResourcesColumns = (): TableColumn[] id: tableColumnInfo[3].id, sort: 'metadata.creationTimestamp', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/packages/helm-plugin/src/components/forms/rollback/RevisionListHeader.tsx b/frontend/packages/helm-plugin/src/components/forms/rollback/RevisionListHeader.tsx index 68220e83647..6f88f353e40 100644 --- a/frontend/packages/helm-plugin/src/components/forms/rollback/RevisionListHeader.tsx +++ b/frontend/packages/helm-plugin/src/components/forms/rollback/RevisionListHeader.tsx @@ -31,7 +31,7 @@ export const useRevisionListColumns = ( { cell: {t('Select')}, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, isStickyColumn: true, stickyMinWidth: '50px', } as ThProps, @@ -39,7 +39,7 @@ export const useRevisionListColumns = ( { cell: t('Revision'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 1, sortBy, @@ -50,7 +50,7 @@ export const useRevisionListColumns = ( { cell: t('Updated'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 2, sortBy, @@ -61,7 +61,7 @@ export const useRevisionListColumns = ( { cell: t('Status'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 3, sortBy, @@ -72,7 +72,7 @@ export const useRevisionListColumns = ( { cell: t('Chart name'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 4, sortBy, @@ -83,7 +83,7 @@ export const useRevisionListColumns = ( { cell: t('Chart version'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 5, sortBy, @@ -94,7 +94,7 @@ export const useRevisionListColumns = ( { cell: t('App version'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { columnIndex: 6, sortBy, @@ -105,7 +105,7 @@ export const useRevisionListColumns = ( { cell: t('Description'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, } as ThProps, }, ], diff --git a/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx b/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx index 41ef4377778..07c980012ac 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/HelmReleaseList.tsx @@ -16,12 +16,15 @@ import { actionsCellProps, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { ResourceFilters } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + ResourceFilters, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { LoadingBox } from '@console/internal/components/utils'; import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watch-hook'; import { SecretModel } from '@console/internal/models'; -import type { K8sResourceKind, TableColumn } from '@console/internal/module/k8s'; +import type { K8sResourceKind } from '@console/internal/module/k8s'; import { isCatalogTypeEnabled } from '@console/shared/src/components/catalog/utils/catalog-utils'; import { DocumentTitle } from '@console/shared/src/components/document-title/DocumentTitle'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; @@ -40,13 +43,13 @@ import { getDataViewRows, tableColumnInfo } from './HelmReleaseListRow'; type HelmReleaseFilters = ResourceFilters & { status: string[] }; const useHelmReleasesColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('helm-plugin'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(HelmReleaseModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -55,7 +58,7 @@ const useHelmReleasesColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -64,7 +67,7 @@ const useHelmReleasesColumns = (): { sort: 'namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -73,7 +76,7 @@ const useHelmReleasesColumns = (): { sort: 'version', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -82,7 +85,7 @@ const useHelmReleasesColumns = (): { sort: 'info.last_deployed', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -91,7 +94,7 @@ const useHelmReleasesColumns = (): { sort: 'info.status', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -100,7 +103,7 @@ const useHelmReleasesColumns = (): { sort: 'chart.metadata.name', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -109,7 +112,7 @@ const useHelmReleasesColumns = (): { sort: 'chart.metadata.version', resizableProps: getResizableProps(tableColumnInfo[6].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -118,7 +121,7 @@ const useHelmReleasesColumns = (): { sort: 'chart.metadata.appVersion', resizableProps: getResizableProps(tableColumnInfo[7].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesHeader.tsx b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesHeader.tsx index 518d453e827..96e515ad80e 100644 --- a/frontend/packages/helm-plugin/src/components/list-page/RepositoriesHeader.tsx +++ b/frontend/packages/helm-plugin/src/components/list-page/RepositoriesHeader.tsx @@ -1,9 +1,10 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { nameCellProps } from '@console/app/src/components/data-view/ConsoleDataView'; +import type { ConsoleDataViewColumn } from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import type { K8sModel } from '@console/dynamic-plugin-sdk'; -import type { K8sResourceKind, TableColumn } from '@console/internal/module/k8s'; +import type { K8sResourceKind } from '@console/internal/module/k8s'; export const tableColumnInfo = [ { id: 'name' }, @@ -18,13 +19,13 @@ export const tableColumnInfo = [ export const useRepositoriesColumns = ( model: K8sModel, ): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('helm-plugin'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(model); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -33,7 +34,7 @@ export const useRepositoriesColumns = ( resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -42,7 +43,7 @@ export const useRepositoriesColumns = ( sort: 'spec.name', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -51,7 +52,7 @@ export const useRepositoriesColumns = ( sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -60,7 +61,7 @@ export const useRepositoriesColumns = ( sort: 'spec.disabled', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -69,7 +70,7 @@ export const useRepositoriesColumns = ( sort: 'spec.connectionConfig.url', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -78,14 +79,14 @@ export const useRepositoriesColumns = ( sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: '', id: tableColumnInfo[6].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/packages/operator-lifecycle-manager-v1/src/components/cluster-extension/ClusterExtensionListPage.tsx b/frontend/packages/operator-lifecycle-manager-v1/src/components/cluster-extension/ClusterExtensionListPage.tsx index 0b7871761d7..2802c288589 100644 --- a/frontend/packages/operator-lifecycle-manager-v1/src/components/cluster-extension/ClusterExtensionListPage.tsx +++ b/frontend/packages/operator-lifecycle-manager-v1/src/components/cluster-extension/ClusterExtensionListPage.tsx @@ -8,9 +8,11 @@ import { getNameCellProps, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import Status from '@console/dynamic-plugin-sdk/src/app/components/status/Status'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { useK8sWatchResource } from '@console/internal/components/utils/k8s-watch-hook'; import { ResourceLink } from '@console/internal/components/utils/resource-link'; import { referenceForModel } from '@console/internal/module/k8s'; @@ -90,9 +92,9 @@ const getDataViewRows: GetDataViewRows = (data, columns) = }); }); -const useClusterExtensionColumns = (): TableColumn[] => { +const useClusterExtensionColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('olm-v1'); - const columns = useMemo[]>( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -100,21 +102,21 @@ const useClusterExtensionColumns = (): TableColumn[] => { sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Status'), id: tableColumnInfo[1].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Version'), id: tableColumnInfo[2].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -126,14 +128,14 @@ const useClusterExtensionColumns = (): TableColumn[] => { id: tableColumnInfo[4].id, sort: 'spec.namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Package'), id: tableColumnInfo[5].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/RBAC/bindings.tsx b/frontend/public/components/RBAC/bindings.tsx index 049a8de0532..7e0d3139724 100644 --- a/frontend/public/components/RBAC/bindings.tsx +++ b/frontend/public/components/RBAC/bindings.tsx @@ -21,7 +21,11 @@ import { actionsCellProps, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows, ResourceFilters } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, + ResourceFilters, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { ListPageBody } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -34,12 +38,7 @@ import { useActiveNamespace } from '@console/shared/src/hooks/useActiveNamespace import { useFlag } from '@console/shared/src/hooks/useFlag'; import { getQueryArgument } from '@console/shared/src/hooks/useQueryParamsMutator'; import { ClusterRoleBindingModel, RoleBindingModel } from '../../models'; -import type { - ClusterRoleBindingKind, - RoleBindingKind, - Subject, - TableColumn, -} from '../../module/k8s'; +import type { ClusterRoleBindingKind, RoleBindingKind, Subject } from '../../module/k8s'; import { getQN, k8sCreate, k8sPatch, referenceFor } from '../../module/k8s'; import { flagPending } from '../../reducers/features'; import type { MultiListPageProps } from '../factory/list-page'; @@ -95,13 +94,13 @@ const tableColumnInfo = [ ]; const useRoleBindingsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(RoleBindingModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -110,7 +109,7 @@ const useRoleBindingsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -119,7 +118,7 @@ const useRoleBindingsColumns = (): { sort: 'roleRef.name', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -128,7 +127,7 @@ const useRoleBindingsColumns = (): { sort: 'subject.kind', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -137,7 +136,7 @@ const useRoleBindingsColumns = (): { sort: 'subject.name', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -146,7 +145,7 @@ const useRoleBindingsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/alert-manager.tsx b/frontend/public/components/alert-manager.tsx index bb6253791b5..3c2c26229dc 100644 --- a/frontend/public/components/alert-manager.tsx +++ b/frontend/public/components/alert-manager.tsx @@ -16,11 +16,14 @@ import { getNameCellProps, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { AlertmanagerModel } from '../models'; -import type { K8sResourceKind, TableColumn } from '../module/k8s'; +import type { K8sResourceKind } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; @@ -167,9 +170,9 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); }); -const useAlertManagerColumns = (): TableColumn[] => { +const useAlertManagerColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -177,7 +180,7 @@ const useAlertManagerColumns = (): TableColumn[] => { sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -185,7 +188,7 @@ const useAlertManagerColumns = (): TableColumn[] => { id: tableColumnInfo[1].id, sort: 'metadata.namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -193,7 +196,7 @@ const useAlertManagerColumns = (): TableColumn[] => { id: tableColumnInfo[2].id, sort: 'metadata.labels', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, @@ -202,7 +205,7 @@ const useAlertManagerColumns = (): TableColumn[] => { id: tableColumnInfo[3].id, sort: 'spec.version', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, @@ -211,7 +214,7 @@ const useAlertManagerColumns = (): TableColumn[] => { id: tableColumnInfo[4].id, sort: 'spec.nodeSelector', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/public/components/api-explorer.tsx b/frontend/public/components/api-explorer.tsx index 8db7ca6c286..6e477186ef2 100644 --- a/frontend/public/components/api-explorer.tsx +++ b/frontend/public/components/api-explorer.tsx @@ -449,7 +449,7 @@ const APIResourcesList: FC = () => { { cell: t('Kind'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, sort: { sortBy, @@ -461,7 +461,7 @@ const APIResourcesList: FC = () => { { cell: t('Group'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 15, sort: { sortBy, @@ -473,7 +473,7 @@ const APIResourcesList: FC = () => { { cell: t('Version'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { sortBy, onSort, @@ -484,7 +484,7 @@ const APIResourcesList: FC = () => { { cell: t('Namespaced'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { sortBy, onSort, @@ -492,7 +492,7 @@ const APIResourcesList: FC = () => { }, }, }, - { cell: t('Description'), props: { modifier: 'nowrap' } }, + { cell: t('Description'), props: { modifier: 'nowrap' as const } }, ]} rows={paginatedResources.map((model: K8sKind) => [ , @@ -908,7 +908,7 @@ const APIResourceAccessReview: FC = ({ { cell: t('Subject'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { sortBy, onSort, @@ -919,7 +919,7 @@ const APIResourceAccessReview: FC = ({ { cell: t('Type'), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, sort: { sortBy, onSort, diff --git a/frontend/public/components/build-config.tsx b/frontend/public/components/build-config.tsx index 3627ad42287..152aaf8fb07 100644 --- a/frontend/public/components/build-config.tsx +++ b/frontend/public/components/build-config.tsx @@ -9,7 +9,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -20,12 +23,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { Status } from '@console/shared/src/components/status/Status'; import { DASH } from '@console/shared/src/constants/ui'; import { BuildModel, BuildConfigModel } from '../models'; -import type { - K8sModel, - K8sResourceKind, - K8sResourceKindReference, - TableColumn, -} from '../module/k8s'; +import type { K8sModel, K8sResourceKind, K8sResourceKindReference } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { BuildsPage, BuildEnvironmentComponent, PipelineBuildStrategyAlert } from './build'; import { ResourceEventStream } from './events'; @@ -214,13 +212,13 @@ const getBuildStatus = (buildConfig: BuildConfig) => buildConfig?.latestBuild?.status?.phase || 'Unknown'; const useBuildConfigColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(BuildConfigModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -229,7 +227,7 @@ const useBuildConfigColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -238,7 +236,7 @@ const useBuildConfigColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -247,7 +245,7 @@ const useBuildConfigColumns = (): { sort: 'latestBuild.metadata.name', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -256,7 +254,7 @@ const useBuildConfigColumns = (): { sort: 'latestBuild.status.phase', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -265,7 +263,7 @@ const useBuildConfigColumns = (): { sort: 'latestBuild.metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -274,7 +272,7 @@ const useBuildConfigColumns = (): { sort: (data, direction) => data.sort(sortResourceByValue(direction, sorts.buildDuration)), resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/build.tsx b/frontend/public/components/build.tsx index 0627d73a146..f295d2529bb 100644 --- a/frontend/public/components/build.tsx +++ b/frontend/public/components/build.tsx @@ -18,7 +18,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import Status from '@console/dynamic-plugin-sdk/src/app/components/status/Status'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; @@ -32,12 +35,7 @@ import { ONE_HOUR, ONE_MINUTE } from '@console/shared/src/constants/time'; import { ByteDataTypes } from '@console/shared/src/graph-helper/data-utils'; import { usePrometheusGate } from '@console/shared/src/hooks/usePrometheusGate'; import { BuildConfigModel, BuildModel } from '../models'; -import type { - K8sResourceKindReference, - K8sResourceKind, - K8sModel, - TableColumn, -} from '../module/k8s'; +import type { K8sResourceKindReference, K8sResourceKind, K8sModel } from '../module/k8s'; import { referenceFor, referenceForModel } from '../module/k8s'; import { getBuildNumber } from '../module/k8s/builds'; import { BuildLogs } from './build-logs'; @@ -389,13 +387,13 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useBuildsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(BuildModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -404,7 +402,7 @@ const useBuildsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -413,7 +411,7 @@ const useBuildsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -422,7 +420,7 @@ const useBuildsColumns = (): { sort: 'status.phase', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -431,7 +429,7 @@ const useBuildsColumns = (): { sort: 'status.startTimestamp', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -440,7 +438,7 @@ const useBuildsColumns = (): { sort: 'status.duration', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/cluster-settings/cluster-operator.tsx b/frontend/public/components/cluster-settings/cluster-operator.tsx index 36b86778398..26c0a5af021 100644 --- a/frontend/public/components/cluster-settings/cluster-operator.tsx +++ b/frontend/public/components/cluster-settings/cluster-operator.tsx @@ -26,10 +26,7 @@ import type { ConsoleDataViewColumn, ConsoleDataViewRow, } from '@console/app/src/components/data-view/types'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { GreenCheckCircleIcon, @@ -129,9 +126,9 @@ const getClusterOperatorDataViewRows = ( }); }); -const useClusterOperatorColumns = (): TableColumn[] => { +const useClusterOperatorColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -139,7 +136,7 @@ const useClusterOperatorColumns = (): TableColumn[] => { sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, @@ -151,7 +148,7 @@ const useClusterOperatorColumns = (): TableColumn[] => { sortResourceByValue(direction, sorts.getClusterOperatorStatus), ), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, @@ -163,14 +160,14 @@ const useClusterOperatorColumns = (): TableColumn[] => { sortResourceByValue(direction, sorts.getClusterOperatorVersion), ), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Message'), id: tableColumnInfo[3].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/public/components/cluster-settings/related-objects.tsx b/frontend/public/components/cluster-settings/related-objects.tsx index d831a76f6d9..64ab5f0586c 100644 --- a/frontend/public/components/cluster-settings/related-objects.tsx +++ b/frontend/public/components/cluster-settings/related-objects.tsx @@ -12,10 +12,7 @@ import type { ConsoleDataViewRow, ResourceMetadata, } from '@console/app/src/components/data-view/types'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { referenceForModel, useModelFinder } from '../../module/k8s'; @@ -76,9 +73,9 @@ const getRelatedObjectsDataViewRows = ( }); }); -const useRelatedObjectsColumns = (): TableColumn[] => { +const useRelatedObjectsColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -86,7 +83,7 @@ const useRelatedObjectsColumns = (): TableColumn sort: 'name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -94,7 +91,7 @@ const useRelatedObjectsColumns = (): TableColumn id: columnIds[1].id, sort: 'resource', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -102,7 +99,7 @@ const useRelatedObjectsColumns = (): TableColumn id: columnIds[2].id, sort: 'group', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -110,7 +107,7 @@ const useRelatedObjectsColumns = (): TableColumn id: columnIds[3].id, sort: 'namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/public/components/configmap.tsx b/frontend/public/components/configmap.tsx index 224d8ac0f57..900ef1830b5 100644 --- a/frontend/public/components/configmap.tsx +++ b/frontend/public/components/configmap.tsx @@ -9,7 +9,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -18,7 +21,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { LoadingBox } from '@console/shared/src/components/loading/LoadingBox'; import { DASH } from '@console/shared/src/constants/ui'; import { ConfigMapModel } from '../models/index'; -import type { ConfigMapKind, TableColumn } from '../module/k8s'; +import type { ConfigMapKind } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { ConfigMapData, ConfigMapBinaryData } from './configmap-and-secret-data'; import { DetailsPage } from './factory/details'; @@ -80,13 +83,13 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useConfigMapsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(ConfigMapModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -95,7 +98,7 @@ const useConfigMapsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -104,7 +107,7 @@ const useConfigMapsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -113,7 +116,7 @@ const useConfigMapsColumns = (): { sort: (data, direction) => data.sort(sortResourceByValue(direction, sorts.dataSize)), resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -122,7 +125,7 @@ const useConfigMapsColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/control-plane-machine-set.tsx b/frontend/public/components/control-plane-machine-set.tsx index 43382613092..33fd6f31617 100644 --- a/frontend/public/components/control-plane-machine-set.tsx +++ b/frontend/public/components/control-plane-machine-set.tsx @@ -19,9 +19,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import PaneBodyGroup from '@console/shared/src/components/layout/PaneBodyGroup'; @@ -196,7 +198,7 @@ const tableColumnInfo = [ ]; const useControlPlaneMachineSetColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); @@ -204,7 +206,7 @@ const useControlPlaneMachineSetColumns = (): { ControlPlaneMachineSetModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -213,7 +215,7 @@ const useControlPlaneMachineSetColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -222,7 +224,7 @@ const useControlPlaneMachineSetColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -231,7 +233,7 @@ const useControlPlaneMachineSetColumns = (): { sort: 'status.readyReplicas', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -240,7 +242,7 @@ const useControlPlaneMachineSetColumns = (): { sort: 'spec.strategy.type', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -249,7 +251,7 @@ const useControlPlaneMachineSetColumns = (): { sort: 'spec.state', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/cron-job.tsx b/frontend/public/components/cron-job.tsx index 030de2b8e4b..b8fbe6ad1e1 100644 --- a/frontend/public/components/cron-job.tsx +++ b/frontend/public/components/cron-job.tsx @@ -10,7 +10,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { PodDisruptionBudgetField } from '@console/app/src/components/pdb/PodDisruptionBudgetField'; import type { RowFilter } from '@console/dynamic-plugin-sdk'; @@ -24,13 +27,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { getPodsForResource } from '@console/shared/src/utils/resource-utils'; import { CronJobModel } from '../models'; -import type { - CronJobKind, - K8sResourceCommon, - K8sResourceKind, - TableColumn, - PodKind, -} from '../module/k8s'; +import type { CronJobKind, K8sResourceCommon, K8sResourceKind, PodKind } from '../module/k8s'; import { referenceForModel, referenceFor, podPhaseFilterReducer } from '../module/k8s'; import { ResourceEventStream } from './events'; import { DetailsPage } from './factory/details'; @@ -317,13 +314,13 @@ const CronJobJobsComponent: FC = ({ obj }) => { }; const useCronJobsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(CronJobModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -332,7 +329,7 @@ const useCronJobsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -341,7 +338,7 @@ const useCronJobsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -350,7 +347,7 @@ const useCronJobsColumns = (): { sort: 'spec.schedule', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -359,7 +356,7 @@ const useCronJobsColumns = (): { sort: 'spec.suspend', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -368,7 +365,7 @@ const useCronJobsColumns = (): { sort: 'spec.concurrencyPolicy', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -377,7 +374,7 @@ const useCronJobsColumns = (): { sort: 'spec.startingDeadlineSeconds', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/custom-resource-definition.tsx b/frontend/public/components/custom-resource-definition.tsx index 7c5ff167833..9658c12fc89 100644 --- a/frontend/public/components/custom-resource-definition.tsx +++ b/frontend/public/components/custom-resource-definition.tsx @@ -27,7 +27,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import type { ResourceListPage } from '@console/dynamic-plugin-sdk/src/extensions/pages'; import { isResourceListPage } from '@console/dynamic-plugin-sdk/src/extensions/pages'; @@ -39,12 +42,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { GreenCheckCircleIcon } from '@console/shared/src/components/status/icons'; import { DASH } from '@console/shared/src/constants/ui'; import { CustomResourceDefinitionModel } from '../models'; -import type { - CRDVersion, - CustomResourceDefinitionKind, - K8sModel, - TableColumn, -} from '../module/k8s'; +import type { CRDVersion, CustomResourceDefinitionKind, K8sModel } from '../module/k8s'; import { apiVersionCompare, getLatestVersionForCRD, @@ -217,7 +215,7 @@ const tableColumnInfo = [ ]; const useCustomResourceDefinitionsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); @@ -225,7 +223,7 @@ const useCustomResourceDefinitionsColumns = (): { CustomResourceDefinitionModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -234,7 +232,7 @@ const useCustomResourceDefinitionsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -243,7 +241,7 @@ const useCustomResourceDefinitionsColumns = (): { sort: 'spec.group', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -255,7 +253,7 @@ const useCustomResourceDefinitionsColumns = (): { ), resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -264,7 +262,7 @@ const useCustomResourceDefinitionsColumns = (): { sort: 'spec.scope', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -272,7 +270,7 @@ const useCustomResourceDefinitionsColumns = (): { id: tableColumnInfo[4].id, resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/default-resource.tsx b/frontend/public/components/default-resource.tsx index 0493e300288..7669599f7a4 100644 --- a/frontend/public/components/default-resource.tsx +++ b/frontend/public/components/default-resource.tsx @@ -17,10 +17,7 @@ import type { } from '@console/app/src/components/data-view/types'; import type { ResourceActionProvider, ResolvedExtension } from '@console/dynamic-plugin-sdk'; import { isResourceActionProvider, useResolvedExtensions } from '@console/dynamic-plugin-sdk'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import type { PageComponentProps } from '@console/dynamic-plugin-sdk/src/extensions/horizontal-nav-tabs'; import { useK8sModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/hooks/useK8sModel'; import { getGroupVersionKindForResource } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; @@ -242,7 +239,7 @@ const getDataViewRows = ( const useDefaultResourceColumns = ( additionalPrinterColumns: CRDAdditionalPrinterColumn[], -): TableColumn[] => { +): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); const columns = useMemo(() => { const additionalPrinterColumnsHeaders = additionalPrinterColumns.map((col) => { @@ -254,7 +251,7 @@ const useDefaultResourceColumns = ( id: getAdditionaPrinterColumnID(col), sort: pathHasSpecialCharacter ? undefined : path.replace(/^\./, ''), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, 'data-test': `additional-printer-column-header-${col.name}`, }, }; @@ -267,7 +264,7 @@ const useDefaultResourceColumns = ( sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -275,7 +272,7 @@ const useDefaultResourceColumns = ( id: tableColumnInfo[1].id, sort: 'metadata.namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ...additionalPrinterColumnsHeaders, @@ -287,7 +284,7 @@ const useDefaultResourceColumns = ( id: tableColumnInfo[2].id, sort: 'metadata.creationTimestamp', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, 'data-test': 'column-header-Created', }, }); @@ -299,7 +296,7 @@ const useDefaultResourceColumns = ( sort: '', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }); diff --git a/frontend/public/components/factory/Table/active-columns-hook.ts b/frontend/public/components/factory/Table/active-columns-hook.ts index c57e8799b93..db1550ea238 100644 --- a/frontend/public/components/factory/Table/active-columns-hook.ts +++ b/frontend/public/components/factory/Table/active-columns-hook.ts @@ -1,5 +1,5 @@ import { useMemo } from 'react'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { ConsoleDataViewColumn } from '@console/dynamic-plugin-sdk/src/api/internal-types'; import { ALL_NAMESPACES_KEY, COLUMN_MANAGEMENT_USER_PREFERENCE_KEY, @@ -12,10 +12,10 @@ export const useActiveColumns = ({ showNamespaceOverride, columnManagementID, }: { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; showNamespaceOverride?: boolean; columnManagementID?: string; -}): [TableColumn[], boolean] => { +}): [ConsoleDataViewColumn[], boolean] => { const [tableColumns, , columnPreferenceLoaded] = useUserPreference( COLUMN_MANAGEMENT_USER_PREFERENCE_KEY, undefined, diff --git a/frontend/public/components/group.tsx b/frontend/public/components/group.tsx index f066799a346..0dae1e08670 100644 --- a/frontend/public/components/group.tsx +++ b/frontend/public/components/group.tsx @@ -10,7 +10,10 @@ import { actionsCellProps, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { k8sPatchResource } from '@console/dynamic-plugin-sdk/src/utils/k8s'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -19,7 +22,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { useWarningModal } from '@console/shared/src/hooks/useWarningModal'; import { GroupModel, UserModel } from '../models'; -import type { GroupKind, TableColumn, K8sResourceKind } from '../module/k8s'; +import type { GroupKind, K8sResourceKind } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; @@ -76,13 +79,13 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useGroupColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(GroupModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -91,7 +94,7 @@ const useGroupColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -100,7 +103,7 @@ const useGroupColumns = (): { sort: 'users.length', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -109,7 +112,7 @@ const useGroupColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/hpa.tsx b/frontend/public/components/hpa.tsx index a31610de208..786a67a9914 100644 --- a/frontend/public/components/hpa.tsx +++ b/frontend/public/components/hpa.tsx @@ -11,7 +11,10 @@ import { ConsoleDataView, getLabelsColumnWidthStyleProp, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -19,11 +22,7 @@ import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { HorizontalPodAutoscalerModel } from '../models'; -import type { - K8sResourceKindReference, - HorizontalPodAutoscalerKind, - TableColumn, -} from '../module/k8s'; +import type { K8sResourceKindReference, HorizontalPodAutoscalerKind } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { Conditions } from './conditions'; import { ResourceEventStream } from './events'; @@ -308,7 +307,7 @@ const getDataViewRows: GetDataViewRows = (data, col }); const useHorizontalPodAutoscalersColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); @@ -316,7 +315,7 @@ const useHorizontalPodAutoscalersColumns = (): { HorizontalPodAutoscalerModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -325,7 +324,7 @@ const useHorizontalPodAutoscalersColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -334,7 +333,7 @@ const useHorizontalPodAutoscalersColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -343,7 +342,7 @@ const useHorizontalPodAutoscalersColumns = (): { sort: 'metadata.labels', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(tableColumnInfo[2].id)), }, }, @@ -353,7 +352,7 @@ const useHorizontalPodAutoscalersColumns = (): { sort: 'spec.scaleTargetRef.name', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -362,7 +361,7 @@ const useHorizontalPodAutoscalersColumns = (): { sort: 'spec.minReplicas', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -371,7 +370,7 @@ const useHorizontalPodAutoscalersColumns = (): { sort: 'spec.maxReplicas', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/image-stream.tsx b/frontend/public/components/image-stream.tsx index a25c890e432..07eb06c16b5 100644 --- a/frontend/public/components/image-stream.tsx +++ b/frontend/public/components/image-stream.tsx @@ -22,7 +22,10 @@ import { nameCellProps, getLabelsColumnWidthStyleProp, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; @@ -30,7 +33,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { ExternalLink } from '@console/shared/src/components/links/ExternalLink'; import { YellowExclamationTriangleIcon } from '@console/shared/src/components/status/icons'; import { ImageStreamModel } from '../models'; -import type { K8sResourceKind, K8sResourceKindReference, TableColumn } from '../module/k8s'; +import type { K8sResourceKind, K8sResourceKindReference } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; @@ -370,14 +373,14 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useImageStreamColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(ImageStreamModel); - const columns: TableColumn[] = useMemo(() => { + const columns: ConsoleDataViewColumn[] = useMemo(() => { const labelsColumnId = tableColumnInfo[2].id; return [ { @@ -387,7 +390,7 @@ const useImageStreamColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -396,7 +399,7 @@ const useImageStreamColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -405,7 +408,7 @@ const useImageStreamColumns = (): { sort: 'metadata.labels', resizableProps: getResizableProps(labelsColumnId), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(labelsColumnId)), }, }, @@ -415,7 +418,7 @@ const useImageStreamColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/job.tsx b/frontend/public/components/job.tsx index 669ea7adbda..3b56d43e6bd 100644 --- a/frontend/public/components/job.tsx +++ b/frontend/public/components/job.tsx @@ -17,7 +17,10 @@ import { nameCellProps, getLabelsColumnWidthStyleProp, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { PodDisruptionBudgetField } from '@console/app/src/components/pdb/PodDisruptionBudgetField'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; @@ -30,7 +33,7 @@ import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { Status } from '@console/shared/src/components/status/Status'; import { DASH } from '@console/shared/src/constants/ui'; import { JobModel } from '../models'; -import type { JobKind, K8sResourceKind, TableColumn } from '../module/k8s'; +import type { JobKind, K8sResourceKind } from '../module/k8s'; import { getJobTypeAndCompletions, referenceFor, referenceForModel } from '../module/k8s'; import { Conditions } from './conditions'; import { ResourceEventStream } from './events'; @@ -225,13 +228,13 @@ const JobsDetailsPage: FC = (props) => { ); }; const useJobsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(JobModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -240,7 +243,7 @@ const useJobsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -249,7 +252,7 @@ const useJobsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -258,7 +261,7 @@ const useJobsColumns = (): { sort: 'metadata.labels', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(tableColumnInfo[2].id)), }, }, @@ -269,7 +272,7 @@ const useJobsColumns = (): { data.sort(sortResourceByValue(direction, sorts.jobCompletionsSucceeded)), resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -279,7 +282,7 @@ const useJobsColumns = (): { data.sort(sortResourceByValue(direction, sorts.jobType)), resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -288,7 +291,7 @@ const useJobsColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/limit-range.tsx b/frontend/public/components/limit-range.tsx index 0a09948cdf5..fd8af0bc93a 100644 --- a/frontend/public/components/limit-range.tsx +++ b/frontend/public/components/limit-range.tsx @@ -10,14 +10,17 @@ import { actionsCellProps, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { LimitRangeModel } from '../models'; -import type { K8sResourceKindReference, K8sResourceKind, TableColumn } from '../module/k8s'; +import type { K8sResourceKindReference, K8sResourceKind } from '../module/k8s'; import { referenceForModel } from '../module/k8s'; import { DetailsPage } from './factory/details'; import { ListPage } from './factory/list-page'; @@ -64,13 +67,13 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useLimitRangeColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(LimitRangeModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -79,7 +82,7 @@ const useLimitRangeColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -88,7 +91,7 @@ const useLimitRangeColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -97,7 +100,7 @@ const useLimitRangeColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/machine-autoscaler.tsx b/frontend/public/components/machine-autoscaler.tsx index 5deaed98c35..0fccfade79e 100644 --- a/frontend/public/components/machine-autoscaler.tsx +++ b/frontend/public/components/machine-autoscaler.tsx @@ -15,9 +15,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; @@ -96,14 +98,14 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useMachineAutoscalerColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineAutoscalerModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -112,7 +114,7 @@ const useMachineAutoscalerColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -121,7 +123,7 @@ const useMachineAutoscalerColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -130,7 +132,7 @@ const useMachineAutoscalerColumns = (): { sort: 'spec.scaleTargetRef.name', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -139,7 +141,7 @@ const useMachineAutoscalerColumns = (): { sort: 'spec.minReplicas', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -148,7 +150,7 @@ const useMachineAutoscalerColumns = (): { sort: 'spec.maxReplicas', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/machine-config-pool.tsx b/frontend/public/components/machine-config-pool.tsx index d680b16ff1b..883f9c220d5 100644 --- a/frontend/public/components/machine-config-pool.tsx +++ b/frontend/public/components/machine-config-pool.tsx @@ -19,9 +19,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import type { Action } from '@console/dynamic-plugin-sdk/src/lib-core'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { ActionMenuVariant } from '@console/shared/src/components/actions/types'; @@ -298,14 +300,14 @@ const tableColumnInfo = [ ]; const useMachineConfigPoolColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineConfigPoolModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -314,7 +316,7 @@ const useMachineConfigPoolColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -323,7 +325,7 @@ const useMachineConfigPoolColumns = (): { sort: 'status.configuration.name', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -331,7 +333,7 @@ const useMachineConfigPoolColumns = (): { id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -339,7 +341,7 @@ const useMachineConfigPoolColumns = (): { id: tableColumnInfo[3].id, resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/machine-config.tsx b/frontend/public/components/machine-config.tsx index e82306bd010..cf29c590233 100644 --- a/frontend/public/components/machine-config.tsx +++ b/frontend/public/components/machine-config.tsx @@ -22,9 +22,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { BlueInfoCircleIcon } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; @@ -194,13 +196,13 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); const useMachineConfigColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineConfigModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -209,7 +211,7 @@ const useMachineConfigColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -218,7 +220,7 @@ const useMachineConfigColumns = (): { sort: "metadata.annotations['machineconfiguration.openshift.io/generated-by-controller-version']", resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -227,7 +229,7 @@ const useMachineConfigColumns = (): { sort: 'spec.config.ignition.version', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -236,7 +238,7 @@ const useMachineConfigColumns = (): { sort: 'spec.osImageURL', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -245,7 +247,7 @@ const useMachineConfigColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/machine-health-check.tsx b/frontend/public/components/machine-health-check.tsx index 6c29a0eadc0..eb0be5dae65 100644 --- a/frontend/public/components/machine-health-check.tsx +++ b/frontend/public/components/machine-health-check.tsx @@ -10,9 +10,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; @@ -66,14 +68,14 @@ const getDataViewRows: GetDataViewRows = (data, columns) }); const useMachineHealthCheckColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineHealthCheckModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -82,7 +84,7 @@ const useMachineHealthCheckColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -91,7 +93,7 @@ const useMachineHealthCheckColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -100,7 +102,7 @@ const useMachineHealthCheckColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/machine-set.tsx b/frontend/public/components/machine-set.tsx index 28b31eb74cd..834a96b1764 100644 --- a/frontend/public/components/machine-set.tsx +++ b/frontend/public/components/machine-set.tsx @@ -19,8 +19,8 @@ import { nameCellProps, ConsoleDataView, } from '@console/app/src/components/data-view/ConsoleDataView'; +import type { ConsoleDataViewColumn } from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { ListPageBody } from '@console/dynamic-plugin-sdk'; import type { ConfigureCountModalProps } from '@console/internal/components/modals/configure-count-modal'; import { useConfigureCountModal } from '@console/internal/components/modals/configure-count-modal'; @@ -275,14 +275,14 @@ const MachineSetDetails: FC = ({ obj }) => { }; const useMachineSetColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const context = useContext(CapacityResolverContext); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineSetModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -291,7 +291,7 @@ const useMachineSetColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -300,7 +300,7 @@ const useMachineSetColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -309,7 +309,7 @@ const useMachineSetColumns = (): { sort: 'status.readyReplicas', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -319,7 +319,7 @@ const useMachineSetColumns = (): { data.sort(sortResourceByValue(direction, getMachineSetInstanceType)), resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -331,7 +331,7 @@ const useMachineSetColumns = (): { : undefined, resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -345,7 +345,7 @@ const useMachineSetColumns = (): { : undefined, resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -362,7 +362,10 @@ const useMachineSetColumns = (): { return { columns, resetAllColumnWidths }; }; -const getDataViewRows = (data: { obj: MachineSetKind }[], columns: TableColumn[]) => +const getDataViewRows = ( + data: { obj: MachineSetKind }[], + columns: ConsoleDataViewColumn[], +) => data.map(({ obj }: { obj: MachineSetKind }) => { const { name, namespace } = obj.metadata; const readyReplicas = getReadyReplicas(obj); diff --git a/frontend/public/components/machine.tsx b/frontend/public/components/machine.tsx index 34a9840f9c0..0029a7468cc 100644 --- a/frontend/public/components/machine.tsx +++ b/frontend/public/components/machine.tsx @@ -15,9 +15,9 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; +import type { ConsoleDataViewColumn } from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import NodeIPList from '@console/app/src/components/nodes/NodeIPList'; -import type { TableColumn } from '@console/dynamic-plugin-sdk'; import { ListPageBody } from '@console/dynamic-plugin-sdk'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; @@ -65,7 +65,10 @@ const tableColumnInfo = [ const getMachineProviderState = (obj: MachineKind): string => obj?.status?.providerStatus?.instanceState; -const getDataViewRows = (data: { obj: MachineKind }[], columns: TableColumn[]) => +const getDataViewRows = ( + data: { obj: MachineKind }[], + columns: ConsoleDataViewColumn[], +) => data.map(({ obj }: { obj: MachineKind }) => { const { name, namespace } = obj.metadata; const nodeName = getMachineNodeName(obj); @@ -200,13 +203,13 @@ type MachineListProps = { }; const useMachineColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(MachineModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -215,7 +218,7 @@ const useMachineColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -224,7 +227,7 @@ const useMachineColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -233,7 +236,7 @@ const useMachineColumns = (): { sort: 'status.nodeRef.name', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -242,7 +245,7 @@ const useMachineColumns = (): { sort: (data, direction) => data.sort(sortResourceByValue(direction, getMachinePhase)), resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -251,7 +254,7 @@ const useMachineColumns = (): { sort: 'status.providerStatus.instanceState', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -260,7 +263,7 @@ const useMachineColumns = (): { sort: "metadata.labels['machine.openshift.io/region']", resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -269,7 +272,7 @@ const useMachineColumns = (): { sort: "metadata.labels['machine.openshift.io/zone']", resizableProps: getResizableProps(tableColumnInfo[6].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx b/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx index 63490b0f5ce..52f99b3ab5e 100644 --- a/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx +++ b/frontend/public/components/monitoring/alertmanager/alertmanager-config.tsx @@ -34,10 +34,7 @@ import type { ResourceMetadata, } from '@console/app/src/components/data-view/types'; import { useOverlay } from '@console/dynamic-plugin-sdk/src/app/modal-support/useOverlay'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { NavBar } from '@console/internal/components/utils/horizontal-nav'; import { DocumentTitle } from '@console/shared/src/components/document-title/DocumentTitle'; import { PageHeading } from '@console/shared/src/components/heading/PageHeading'; @@ -406,9 +403,9 @@ const getReceiverDataViewRows = ( }); }); -const useReceiverColumns = (): TableColumn[] => { +const useReceiverColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -416,21 +413,21 @@ const useReceiverColumns = (): TableColumn[] => { sort: 'name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Integration type'), id: tableColumnInfo[1].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { title: t('Routing labels'), id: tableColumnInfo[2].id, props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -438,7 +435,7 @@ const useReceiverColumns = (): TableColumn[] => { id: tableColumnInfo[3].id, props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, ], diff --git a/frontend/public/components/persistent-volume-claim.tsx b/frontend/public/components/persistent-volume-claim.tsx index 9b92f4b4139..682674b7155 100644 --- a/frontend/public/components/persistent-volume-claim.tsx +++ b/frontend/public/components/persistent-volume-claim.tsx @@ -24,7 +24,11 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { ResourceFilters, GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + ResourceFilters, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { useResolvedExtensions } from '@console/dynamic-plugin-sdk'; import type { PVCStatus, PVCAlert } from '@console/dynamic-plugin-sdk/src/extensions/pvc'; @@ -33,7 +37,6 @@ import { isPVCCreateProp, isPVCStatus, } from '@console/dynamic-plugin-sdk/src/extensions/pvc'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import type { PVCMetrics } from '@console/internal/actions/ui'; import { setPVCMetrics } from '@console/internal/actions/ui'; import { PersistentVolumeClaimModel, VolumeAttributesClassModel } from '@console/internal/models'; @@ -197,7 +200,7 @@ const getDataViewRowsCreator: ( }); const usePersistentVolumeClaimColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); @@ -205,56 +208,56 @@ const usePersistentVolumeClaimColumns = (): { PersistentVolumeClaimModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Namespace'), sort: 'metadata.namespace', id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Status'), sort: 'status.phase', id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('PersistentVolume'), sort: 'spec.volumeName', id: tableColumnInfo[3].id, resizableProps: getResizableProps(tableColumnInfo[3].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Capacity'), sort: 'pvcStorage', id: tableColumnInfo[4].id, resizableProps: getResizableProps(tableColumnInfo[4].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Used'), sort: 'pvcUsed', id: tableColumnInfo[5].id, resizableProps: getResizableProps(tableColumnInfo[5].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('StorageClass'), sort: 'spec.storageClassName', id: tableColumnInfo[6].id, resizableProps: getResizableProps(tableColumnInfo[6].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/public/components/persistent-volume.tsx b/frontend/public/components/persistent-volume.tsx index b0d78add68c..715e3d8fce4 100644 --- a/frontend/public/components/persistent-volume.tsx +++ b/frontend/public/components/persistent-volume.tsx @@ -18,9 +18,11 @@ import { nameCellProps, getLabelsColumnWidthStyleProp, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import type { PersistentVolumeKind } from '@console/internal/module/k8s'; import { referenceForModel } from '@console/internal/module/k8s'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -112,42 +114,42 @@ const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(PersistentVolumeModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Status'), sort: 'status.phase', id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Claim'), sort: 'spec.claimRef.name', id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Capacity'), sort: 'pvStorage', id: tableColumnInfo[3].id, resizableProps: getResizableProps(tableColumnInfo[3].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Labels'), @@ -155,7 +157,7 @@ const usePersistentVolumeColumns = (): { id: tableColumnInfo[4].id, resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(tableColumnInfo[4].id)), }, }, @@ -164,7 +166,7 @@ const usePersistentVolumeColumns = (): { sort: 'metadata.creationTimestamp', id: tableColumnInfo[5].id, resizableProps: getResizableProps(tableColumnInfo[5].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/public/components/pod-list.tsx b/frontend/public/components/pod-list.tsx index e02026c0f6d..3ec8ab60e92 100644 --- a/frontend/public/components/pod-list.tsx +++ b/frontend/public/components/pod-list.tsx @@ -24,7 +24,6 @@ import { ListPageBody } from '@console/dynamic-plugin-sdk'; import type { ColumnLayout, RowProps, - TableColumn, } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -114,11 +113,11 @@ const tableColumnInfo = [ const usePodsColumns = ( showNodes: boolean, -): { columns: TableColumn[]; resetAllColumnWidths: () => void } => { +): { columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void } => { const { t } = useTranslation('public'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(PodModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -127,7 +126,7 @@ const usePodsColumns = ( sort: 'metadata.name', props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -136,7 +135,7 @@ const usePodsColumns = ( sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -145,7 +144,7 @@ const usePodsColumns = ( sort: (data, direction) => data.sort(sortResourceByValue(direction, podPhase)), resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -155,7 +154,7 @@ const usePodsColumns = ( data.sort(sortResourceByValue(direction, (obj) => podReadiness(obj).readyCount)), resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -164,7 +163,7 @@ const usePodsColumns = ( sort: (data, direction) => data.sort(sortResourceByValue(direction, podRestarts)), resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -173,7 +172,7 @@ const usePodsColumns = ( sort: showNodes ? 'spec.nodeName' : 'metadata.ownerReferences[0].name', resizableProps: getResizableProps(tableColumnInfo[5].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -183,7 +182,7 @@ const usePodsColumns = ( data.sort(sortResourceByValue(direction, (obj) => UIActions.getPodMetric(obj, 'memory'))), resizableProps: getResizableProps(tableColumnInfo[6].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -193,7 +192,7 @@ const usePodsColumns = ( data.sort(sortResourceByValue(direction, (obj) => UIActions.getPodMetric(obj, 'cpu'))), resizableProps: getResizableProps(tableColumnInfo[7].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -202,7 +201,7 @@ const usePodsColumns = ( sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[8].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -211,7 +210,7 @@ const usePodsColumns = ( sort: 'spec.nodeName', resizableProps: getResizableProps(tableColumnInfo[9].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -221,7 +220,7 @@ const usePodsColumns = ( sort: 'metadata.labels', resizableProps: getResizableProps(tableColumnInfo[10].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(tableColumnInfo[3].id)), }, additional: true, @@ -232,7 +231,7 @@ const usePodsColumns = ( sort: 'status.podIP', resizableProps: getResizableProps(tableColumnInfo[11].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, @@ -241,7 +240,7 @@ const usePodsColumns = ( id: tableColumnInfo[12].id, resizableProps: getResizableProps(tableColumnInfo[12].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, additional: true, }, diff --git a/frontend/public/components/prometheus.tsx b/frontend/public/components/prometheus.tsx index f5e2553db7d..cdbae67f754 100644 --- a/frontend/public/components/prometheus.tsx +++ b/frontend/public/components/prometheus.tsx @@ -7,11 +7,14 @@ import { actionsCellProps, cellIsStickyProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import { DASH } from '@console/shared/src/constants/ui'; import { PrometheusModel } from '../models'; -import type { K8sResourceKind, TableColumn } from '../module/k8s'; +import type { K8sResourceKind } from '../module/k8s'; import { referenceForModel, referenceFor } from '../module/k8s'; import { ListPage } from './factory/list-page'; import type { ListPageProps } from './factory/list-page'; @@ -84,7 +87,7 @@ const getDataViewRows: GetDataViewRows = (data, columns) => }); }); -const usePrometheusColumns = (): TableColumn[] => { +const usePrometheusColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); return useMemo( () => [ @@ -94,7 +97,7 @@ const usePrometheusColumns = (): TableColumn[] => { sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -102,7 +105,7 @@ const usePrometheusColumns = (): TableColumn[] => { id: tableColumnInfo[1].id, sort: 'metadata.namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -110,7 +113,7 @@ const usePrometheusColumns = (): TableColumn[] => { id: tableColumnInfo[2].id, sort: 'metadata.labels', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, @@ -119,7 +122,7 @@ const usePrometheusColumns = (): TableColumn[] => { id: tableColumnInfo[3].id, sort: 'spec.version', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -127,7 +130,7 @@ const usePrometheusColumns = (): TableColumn[] => { id: tableColumnInfo[4].id, sort: 'spec.serviceMonitorSelector', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, width: 20, }, }, diff --git a/frontend/public/components/secret.tsx b/frontend/public/components/secret.tsx index 8d078aaf29f..9c103133362 100644 --- a/frontend/public/components/secret.tsx +++ b/frontend/public/components/secret.tsx @@ -9,7 +9,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -18,7 +21,7 @@ import { Timestamp } from '@console/shared/src/components/datetime/Timestamp'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { SecretModel } from '../models'; -import type { SecretKind, K8sModel, K8sResourceKind, TableColumn } from '../module/k8s'; +import type { SecretKind, K8sModel, K8sResourceKind } from '../module/k8s'; import { referenceFor, referenceForModel } from '../module/k8s'; import { SecretData } from './configmap-and-secret-data'; import { DetailsPage } from './factory/details'; @@ -119,13 +122,13 @@ const SecretDetails: FC<{ obj: SecretKind }> = ({ obj }) => { }; const useSecretsColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(SecretModel); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -134,7 +137,7 @@ const useSecretsColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -143,7 +146,7 @@ const useSecretsColumns = (): { sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -152,7 +155,7 @@ const useSecretsColumns = (): { sort: 'type', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -161,7 +164,7 @@ const useSecretsColumns = (): { sort: (data, direction) => data.sort(sortResourceByValue(direction, sorts.dataSize)), resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -170,7 +173,7 @@ const useSecretsColumns = (): { sort: 'metadata.creationTimestamp', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/storage-class.tsx b/frontend/public/components/storage-class.tsx index aceb019d89d..45a34fbd5a1 100644 --- a/frontend/public/components/storage-class.tsx +++ b/frontend/public/components/storage-class.tsx @@ -17,10 +17,12 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { useIsKubevirtPluginActive } from '@console/app/src/utils/kubevirt'; -import type { TableColumn } from '@console/dynamic-plugin-sdk/src/lib-core'; import { StorageClassModel } from '@console/internal/models'; import { ActionServiceProvider } from '@console/shared/src/components/actions/ActionServiceProvider'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -116,34 +118,34 @@ const getDataViewRowsCreator: ( }); const useStorageClassColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(StorageClassModel); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), sort: 'metadata.name', id: tableColumnInfo[0].id, resizableProps: getResizableProps(tableColumnInfo[0].id), - props: { ...nameCellProps, modifier: 'nowrap' }, + props: { ...nameCellProps, modifier: 'nowrap' as const }, }, { title: t('Provisioner'), sort: 'provisioner', id: tableColumnInfo[1].id, resizableProps: getResizableProps(tableColumnInfo[1].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: t('Reclaim policy'), sort: 'reclaimPolicy', id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), - props: { modifier: 'nowrap' }, + props: { modifier: 'nowrap' as const }, }, { title: '', diff --git a/frontend/public/components/template-instance.tsx b/frontend/public/components/template-instance.tsx index 4fba55ccd87..3660c41fe82 100644 --- a/frontend/public/components/template-instance.tsx +++ b/frontend/public/components/template-instance.tsx @@ -25,10 +25,7 @@ import type { ConsoleDataViewColumn, ConsoleDataViewRow, } from '@console/app/src/components/data-view/types'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; import PaneBody from '@console/shared/src/components/layout/PaneBody'; @@ -93,9 +90,9 @@ const getTemplateInstanceDataViewRows = ( }); }); -const useTemplateInstanceColumns = (): TableColumn[] => { +const useTemplateInstanceColumns = (): ConsoleDataViewColumn[] => { const { t } = useTranslation('public'); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -103,7 +100,7 @@ const useTemplateInstanceColumns = (): TableColumn[] => { sort: 'metadata.name', props: { ...cellIsStickyProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -111,7 +108,7 @@ const useTemplateInstanceColumns = (): TableColumn[] => { id: tableColumnInfo[1].id, sort: 'metadata.namespace', props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -122,7 +119,7 @@ const useTemplateInstanceColumns = (): TableColumn[] => { sortResourceByValue(direction, sorts.getTemplateInstanceStatus), ), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/user.tsx b/frontend/public/components/user.tsx index 56bc1cd8e29..35abd8a3f3e 100644 --- a/frontend/public/components/user.tsx +++ b/frontend/public/components/user.tsx @@ -141,7 +141,7 @@ const useUsersColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -150,7 +150,7 @@ const useUsersColumns = (): { sort: 'fullName', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -159,7 +159,7 @@ const useUsersColumns = (): { sort: 'identities[0]', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/volume-attributes-class.tsx b/frontend/public/components/volume-attributes-class.tsx index a5dd2eba623..75ea45c2f58 100644 --- a/frontend/public/components/volume-attributes-class.tsx +++ b/frontend/public/components/volume-attributes-class.tsx @@ -10,7 +10,10 @@ import { ConsoleDataView, nameCellProps, } from '@console/app/src/components/data-view/ConsoleDataView'; -import type { GetDataViewRows } from '@console/app/src/components/data-view/types'; +import type { + ConsoleDataViewColumn, + GetDataViewRows, +} from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import { ActionServiceProvider } from '@console/shared/src/components/actions/ActionServiceProvider'; import { LazyActionMenu } from '@console/shared/src/components/actions/LazyActionMenu'; @@ -19,7 +22,7 @@ import { ActionMenuVariant } from '@console/shared/src/components/actions/types' import PaneBody from '@console/shared/src/components/layout/PaneBody'; import { DASH } from '@console/shared/src/constants/ui'; import { VolumeAttributesClassModel } from '../models'; -import type { VolumeAttributesClassKind, TableColumn, K8sGroupVersionKind } from '../module/k8s'; +import type { VolumeAttributesClassKind, K8sGroupVersionKind } from '../module/k8s'; import { referenceFor } from '../module/k8s'; import type { ListPageProps } from './factory'; import { DetailsPage, ListPage } from './factory'; @@ -44,7 +47,7 @@ const VolumeAttributesClassGVK: K8sGroupVersionKind = { const tableColumnInfo = [{ id: 'name' }, { id: 'driverName' }, { id: 'parameters' }, { id: '' }]; const useVolumeAttributesClassColumns = (): { - columns: TableColumn[]; + columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void; } => { const { t } = useTranslation('public'); @@ -52,7 +55,7 @@ const useVolumeAttributesClassColumns = (): { VolumeAttributesClassModel, ); - const columns: TableColumn[] = useMemo( + const columns: ConsoleDataViewColumn[] = useMemo( () => [ { title: t('Name'), @@ -61,7 +64,7 @@ const useVolumeAttributesClassColumns = (): { resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -70,7 +73,7 @@ const useVolumeAttributesClassColumns = (): { sort: 'driverName', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -78,7 +81,7 @@ const useVolumeAttributesClassColumns = (): { id: tableColumnInfo[2].id, resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { diff --git a/frontend/public/components/workload-table.tsx b/frontend/public/components/workload-table.tsx index ae5a68d4b09..c84477df603 100644 --- a/frontend/public/components/workload-table.tsx +++ b/frontend/public/components/workload-table.tsx @@ -17,10 +17,7 @@ import type { } from '@console/app/src/components/data-view/types'; import { useColumnWidthSettings } from '@console/app/src/components/data-view/useResizableColumnProps'; import type { K8sModel } from '@console/dynamic-plugin-sdk/src/api/common-types'; -import type { - RowProps, - TableColumn, -} from '@console/dynamic-plugin-sdk/src/extensions/console-types'; +import type { RowProps } from '@console/dynamic-plugin-sdk/src/extensions/console-types'; import { getGroupVersionKindForModel } from '@console/dynamic-plugin-sdk/src/utils/k8s/k8s-ref'; import { LazyActionMenu, @@ -165,11 +162,11 @@ export const getWorkloadDataViewRows = ( export const useWorkloadColumns = ( model: K8sModel, -): { columns: TableColumn[]; resetAllColumnWidths: () => void } => { +): { columns: ConsoleDataViewColumn[]; resetAllColumnWidths: () => void } => { const { t } = useTranslation('public'); const { getResizableProps, getWidth, resetAllColumnWidths } = useColumnWidthSettings(model); - const columns = useMemo( + const columns = useMemo[]>( () => [ { title: t('Name'), @@ -178,7 +175,7 @@ export const useWorkloadColumns = ( resizableProps: getResizableProps(tableColumnInfo[0].id), props: { ...nameCellProps, - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -187,7 +184,7 @@ export const useWorkloadColumns = ( sort: 'metadata.namespace', resizableProps: getResizableProps(tableColumnInfo[1].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -196,7 +193,7 @@ export const useWorkloadColumns = ( sort: 'status.replicas', resizableProps: getResizableProps(tableColumnInfo[2].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, { @@ -205,7 +202,7 @@ export const useWorkloadColumns = ( sort: 'metadata.labels', resizableProps: getResizableProps(tableColumnInfo[3].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, ...getLabelsColumnWidthStyleProp(getWidth(tableColumnInfo[3].id)), }, }, @@ -215,7 +212,7 @@ export const useWorkloadColumns = ( sort: 'spec.selector', resizableProps: getResizableProps(tableColumnInfo[4].id), props: { - modifier: 'nowrap', + modifier: 'nowrap' as const, }, }, {