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,
],
}}
/>
);
}