@@ -4,27 +4,27 @@ import {skipToken} from '@reduxjs/toolkit/query';
44
55import { ResponseError } from '../../../../components/Errors/ResponseError' ;
66import { ResizeableDataTable } from '../../../../components/ResizeableDataTable/ResizeableDataTable' ;
7+ import { TableColumnSetup } from '../../../../components/TableColumnSetup/TableColumnSetup' ;
78import { TableSkeleton } from '../../../../components/TableSkeleton/TableSkeleton' ;
89import { TableWithControlsLayout } from '../../../../components/TableWithControlsLayout/TableWithControlsLayout' ;
910import { nodesListApi , selectNodesMap } from '../../../../store/reducers/nodesList' ;
1011import { partitionsApi , setSelectedConsumer } from '../../../../store/reducers/partitions/partitions' ;
1112import { selectConsumersNames , topicApi } from '../../../../store/reducers/topic' ;
1213import { cn } from '../../../../utils/cn' ;
13- import { DEFAULT_TABLE_SETTINGS , PARTITIONS_HIDDEN_COLUMNS_KEY } from '../../../../utils/constants' ;
14- import {
15- useAutoRefreshInterval ,
16- useSetting ,
17- useTypedDispatch ,
18- useTypedSelector ,
19- } from '../../../../utils/hooks' ;
14+ import { DEFAULT_TABLE_SETTINGS } from '../../../../utils/constants' ;
15+ import { useAutoRefreshInterval , useTypedDispatch , useTypedSelector } from '../../../../utils/hooks' ;
16+ import { useSelectedColumns } from '../../../../utils/hooks/useSelectedColumns' ;
2017
21- import {
22- PartitionsControls ,
23- PartitionsTableColumnSetup ,
24- } from './PartitionsControls/PartitionsControls' ;
18+ import { PartitionsControls } from './PartitionsControls/PartitionsControls' ;
2519import { PARTITIONS_COLUMNS_WIDTH_LS_KEY } from './columns' ;
2620import i18n from './i18n' ;
2721import { addHostToPartitions } from './utils' ;
22+ import {
23+ PARTITIONS_COLUMNS_IDS ,
24+ PARTITIONS_COLUMNS_TITLES ,
25+ allPartitionsColumnsIds ,
26+ generalPartitionColumnsIds ,
27+ } from './utils/constants' ;
2828import type { PreparedPartitionDataWithHosts } from './utils/types' ;
2929import { useGetPartitionsColumns } from './utils/useGetPartitionsColumns' ;
3030
@@ -64,9 +64,15 @@ export const Partitions = ({path, database, databaseFullPath}: PartitionsProps)
6464 const nodesLoading = nodesIsFetching && nodesData === undefined ;
6565 const nodeHostsMap = useTypedSelector ( ( state ) => selectNodesMap ( state , database ) ) ;
6666
67- const [ hiddenColumns , setHiddenColumns ] = useSetting < string [ ] > ( PARTITIONS_HIDDEN_COLUMNS_KEY ) ;
67+ const columns = useGetPartitionsColumns ( selectedConsumer ) ;
6868
69- const [ columns , columnsIdsForSelector ] = useGetPartitionsColumns ( selectedConsumer ) ;
69+ const { columnsToShow, columnsToSelect, setColumns} = useSelectedColumns (
70+ columns ,
71+ 'partitionsSelectedColumns' ,
72+ PARTITIONS_COLUMNS_TITLES ,
73+ selectedConsumer ? allPartitionsColumnsIds : generalPartitionColumnsIds ,
74+ [ PARTITIONS_COLUMNS_IDS . PARTITION_ID ] ,
75+ ) ;
7076
7177 const params = topicLoading
7278 ? skipToken
@@ -95,14 +101,6 @@ export const Partitions = ({path, database, databaseFullPath}: PartitionsProps)
95101 }
96102 } , [ dispatch , topicLoading , selectedConsumer , consumers ] ) ;
97103
98- const columnsToShow = React . useMemo ( ( ) => {
99- return columns . filter ( ( column ) => ! hiddenColumns . includes ( column . name ) ) ;
100- } , [ columns , hiddenColumns ] ) ;
101-
102- const hadleTableColumnsSetupChange = ( newHiddenColumns : string [ ] ) => {
103- setHiddenColumns ( newHiddenColumns ) ;
104- } ;
105-
106104 const handleSelectedConsumerChange = ( value ?: string ) => {
107105 dispatch ( setSelectedConsumer ( value ) ) ;
108106 } ;
@@ -125,13 +123,7 @@ export const Partitions = ({path, database, databaseFullPath}: PartitionsProps)
125123 } ;
126124
127125 const renderExtraControls = ( ) => {
128- return (
129- < PartitionsTableColumnSetup
130- hiddenColumns = { hiddenColumns }
131- onHiddenColumnsChange = { hadleTableColumnsSetupChange }
132- initialColumnsIds = { columnsIdsForSelector }
133- />
134- ) ;
126+ return < TableColumnSetup items = { columnsToSelect } showStatus onUpdate = { setColumns } /> ;
135127 } ;
136128
137129 const renderContent = ( ) => {
0 commit comments