Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@ import type { TFunction } from 'i18next';
import { useTranslation } from 'react-i18next';
import {
actionsCellProps,
cellIsStickyProps,
getNameCellProps,
ConsoleDataView,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import type { 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,
Expand Down Expand Up @@ -82,39 +83,48 @@ const getDataViewRowsCreator: (t: TFunction) => GetDataViewRows<VolumeSnapshotCl
});
};

const useVolumeSnapshotClassColumns = (): TableColumn<VolumeSnapshotClassKind>[] => {
const useVolumeSnapshotClassColumns = (): {
columns: TableColumn<VolumeSnapshotClassKind>[];
resetAllColumnWidths: () => void;
} => {
const { t } = useTranslation();
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(
VolumeSnapshotClassModel,
);

const columns: TableColumn<VolumeSnapshotClassKind>[] = useMemo(
() => [
{
title: t('console-app~Name'),
sort: 'metadata.name',
id: tableColumnInfo[0].id,
props: { ...cellIsStickyProps, modifier: 'nowrap' },
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: { ...nameCellProps, modifier: 'nowrap' },
},
{
title: t('console-app~Driver'),
sort: 'driver',
id: tableColumnInfo[1].id,
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Deletion policy'),
sort: 'deletionPolicy',
id: tableColumnInfo[2].id,
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: { modifier: 'nowrap' },
},
{
title: '',
id: tableColumnInfo[3].id,
props: { ...cellIsStickyProps },
props: { ...actionsCellProps },
},
],
[t],
[t, getResizableProps],
);

return columns;
return { columns, resetAllColumnWidths };
};

const VolumeSnapshotClassTable: FC<VolumeSnapshotClassTableProps> = ({
Expand All @@ -123,7 +133,7 @@ const VolumeSnapshotClassTable: FC<VolumeSnapshotClassTableProps> = ({
...props
}) => {
const { t } = useTranslation();
const columns = useVolumeSnapshotClassColumns();
const { columns, resetAllColumnWidths } = useVolumeSnapshotClassColumns();
const getDataViewRows = useMemo(() => getDataViewRowsCreator(t), [t]);

return (
Expand All @@ -136,6 +146,8 @@ const VolumeSnapshotClassTable: FC<VolumeSnapshotClassTableProps> = ({
columns={columns}
getDataViewRows={getDataViewRows}
hideColumnManagement
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ import { useMemo, Suspense } from 'react';
import { useTranslation } from 'react-i18next';
import {
actionsCellProps,
cellIsStickyProps,
getNameCellProps,
ConsoleDataView,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import type { 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,
Expand Down Expand Up @@ -102,65 +103,77 @@ const getDataViewRows: GetDataViewRows<VolumeSnapshotContentKind> = (data, colum
});
};

const useVolumeSnapshotContentColumns = (): TableColumn<VolumeSnapshotContentKind>[] => {
const useVolumeSnapshotContentColumns = (): {
columns: TableColumn<VolumeSnapshotContentKind>[];
resetAllColumnWidths: () => void;
} => {
const { t } = useTranslation();
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(
VolumeSnapshotContentModel,
);

const columns: TableColumn<VolumeSnapshotContentKind>[] = useMemo(
() => [
{
title: t('console-app~Name'),
sort: 'metadata.name',
id: tableColumnInfo[0].id,
props: { ...cellIsStickyProps, modifier: 'nowrap' },
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: { ...nameCellProps, modifier: 'nowrap' },
},
{
title: t('console-app~Status'),
sort: 'snapshotStatus',
id: tableColumnInfo[1].id,
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Size'),
sort: 'volumeSnapshotSize',
id: tableColumnInfo[2].id,
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~VolumeSnapshot'),
sort: 'spec.volumeSnapshotRef.name',
id: tableColumnInfo[3].id,
resizableProps: getResizableProps(tableColumnInfo[3].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~SnapshotClass'),
sort: 'spec.volumeSnapshotClassName',
id: tableColumnInfo[4].id,
resizableProps: getResizableProps(tableColumnInfo[4].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Created at'),
sort: 'metadata.creationTimestamp',
id: tableColumnInfo[5].id,
resizableProps: getResizableProps(tableColumnInfo[5].id),
props: { modifier: 'nowrap' },
},
{
title: '',
id: tableColumnInfo[6].id,
props: { ...cellIsStickyProps },
props: { ...actionsCellProps },
},
],
[t],
[t, getResizableProps],
);

return columns;
return { columns, resetAllColumnWidths };
};

const VolumeSnapshotContentTable: FC<VolumeSnapshotContentTableProps> = ({
data,
loaded,
...props
}) => {
const columns = useVolumeSnapshotContentColumns();
const { columns, resetAllColumnWidths } = useVolumeSnapshotContentColumns();

return (
<Suspense fallback={<LoadingBox />}>
Expand All @@ -172,6 +185,8 @@ const VolumeSnapshotContentTable: FC<VolumeSnapshotContentTableProps> = ({
columns={columns}
getDataViewRows={getDataViewRows}
hideColumnManagement
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,13 @@ import { useTranslation } from 'react-i18next';
import { useParams } from 'react-router';
import {
actionsCellProps,
cellIsStickyProps,
getNameCellProps,
initialFiltersDefault,
ConsoleDataView,
nameCellProps,
} from '@console/app/src/components/data-view/ConsoleDataView';
import type { 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,
Expand Down Expand Up @@ -145,8 +146,9 @@ const getDataViewRows: GetDataViewRows<VolumeSnapshotKind, VolumeSnapshotRowData

const useVolumeSnapshotColumns = (
rowData: VolumeSnapshotRowData,
): TableColumn<VolumeSnapshotKind>[] => {
): { columns: TableColumn<VolumeSnapshotKind>[]; resetAllColumnWidths: () => void } => {
const { t } = useTranslation();
const { getResizableProps, resetAllColumnWidths } = useColumnWidthSettings(VolumeSnapshotModel);

const columns: TableColumn<VolumeSnapshotKind>[] = useMemo(
() =>
Expand All @@ -155,61 +157,69 @@ const useVolumeSnapshotColumns = (
title: t('console-app~Name'),
sort: 'metadata.name',
id: tableColumnInfo[0].id,
props: { ...cellIsStickyProps, modifier: 'nowrap' },
resizableProps: getResizableProps(tableColumnInfo[0].id),
props: { ...nameCellProps, modifier: 'nowrap' },
},
{
title: t('console-app~Namespace'),
sort: 'metadata.namespace',
id: tableColumnInfo[1].id,
resizableProps: getResizableProps(tableColumnInfo[1].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Status'),
sort: 'snapshotStatus',
id: tableColumnInfo[2].id,
resizableProps: getResizableProps(tableColumnInfo[2].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Size'),
sort: 'volumeSnapshotSize',
id: tableColumnInfo[3].id,
resizableProps: getResizableProps(tableColumnInfo[3].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Source'),
sort: 'volumeSnapshotSource',
id: tableColumnInfo[4].id,
resizableProps: getResizableProps(tableColumnInfo[4].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Snapshot content'),
sort: 'status.boundVolumeSnapshotContentName',
id: tableColumnInfo[5].id,
resizableProps: getResizableProps(tableColumnInfo[5].id),
props: { modifier: 'nowrap' },
disabled: rowData.hideSnapshotContentColumn,
},
{
title: t('console-app~VolumeSnapshotClass'),
sort: 'spec.volumeSnapshotClassName',
id: tableColumnInfo[6].id,
resizableProps: getResizableProps(tableColumnInfo[6].id),
props: { modifier: 'nowrap' },
},
{
title: t('console-app~Created at'),
sort: 'metadata.creationTimestamp',
id: tableColumnInfo[7].id,
resizableProps: getResizableProps(tableColumnInfo[7].id),
props: { modifier: 'nowrap' },
},
{
title: '',
id: tableColumnInfo[8].id,
props: { ...cellIsStickyProps },
props: { ...actionsCellProps },
},
].filter((c) => !c.disabled),
[t, rowData.hideSnapshotContentColumn],
[t, rowData.hideSnapshotContentColumn, getResizableProps],
);

return columns;
return { columns, resetAllColumnWidths };
};

const VolumeSnapshotTable: FC<VolumeSnapshotTableProps> = ({ data, loaded, ...props }) => {
Expand All @@ -220,7 +230,7 @@ const VolumeSnapshotTable: FC<VolumeSnapshotTableProps> = ({ data, loaded, ...pr
hideSnapshotContentColumn: !canListVSC,
};

const columns = useVolumeSnapshotColumns(customRowData);
const { columns, resetAllColumnWidths } = useVolumeSnapshotColumns(customRowData);

const volumeSnapshotStatusFilterOptions = useMemo<DataViewFilterOption[]>(
() => [
Expand Down Expand Up @@ -287,6 +297,8 @@ const VolumeSnapshotTable: FC<VolumeSnapshotTableProps> = ({ data, loaded, ...pr
additionalFilterNodes={additionalFilterNodes}
matchesAdditionalFilters={matchesAdditionalFilters}
hideColumnManagement
isResizable
resetAllColumnWidths={resetAllColumnWidths}
/>
</Suspense>
);
Expand Down
Loading