import {PaginatedTableWithLayout} from '../../../components/PaginatedTable/PaginatedTableWithLayout'; import {TableColumnSetup} from '../../../components/TableColumnSetup/TableColumnSetup'; import {useViewerNodesHandlerHasGrouping} from '../../../store/reducers/capabilities/hooks'; import {useHideUnavailableNodes} from '../../../utils/hooks/useHideUnavailableNodes'; import {renderPaginatedTableErrorMessage} from '../../../utils/renderPaginatedTableErrorMessage'; import type {PaginatedStorageProps} from '../PaginatedStorage'; import {PaginatedStorageNodesTable} from '../PaginatedStorageNodesTable/PaginatedStorageNodesTable'; import {useIsStorageExpertMode, useStorageQueryParams} from '../useStorageQueryParams'; import {useStorageColumnsSettings} from '../utils'; import {StorageNodesControlsWithTableState} from './StorageNodesControls'; import {useStorageNodesColumnsToSelect} from './useStorageNodesColumnsToSelect'; export function StorageNodesComponent({ database, nodeId, groupId, viewContext, scrollContainerRef, initialEntitiesCount, }: PaginatedStorageProps) { const {nodesSearchValue, visibleEntities, nodesUptimeFilter, handleShowAllNodes} = useStorageQueryParams(); const viewerNodesHandlerHasGrouping = useViewerNodesHandlerHasGrouping(); const {hideUnavailable} = useHideUnavailableNodes(); const expertMode = useIsStorageExpertMode(); const {handleDataFetched, columnsSettings, rowHeight} = useStorageColumnsSettings({ expertMode, }); const {columnsToShow, columnsToSelect, setColumns} = useStorageNodesColumnsToSelect({ database, viewContext, columnsSettings, }); return ( } extraControls={ } table={ } tableWrapperProps={{ scrollContainerRef, scrollDependencies: [ nodesSearchValue, visibleEntities, nodesUptimeFilter, hideUnavailable, ], }} /> ); }