-
Notifications
You must be signed in to change notification settings - Fork 21
Expand file tree
/
Copy pathStorageNodesComponent.tsx
More file actions
65 lines (59 loc) · 2.57 KB
/
StorageNodesComponent.tsx
File metadata and controls
65 lines (59 loc) · 2.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import {PaginatedTableWithLayout} from '../../../components/PaginatedTable/PaginatedTableWithLayout';
import {useViewerNodesHandlerHasGrouping} from '../../../store/reducers/capabilities/hooks';
import {renderPaginatedTableErrorMessage} from '../../../utils/renderPaginatedTableErrorMessage';
import type {PaginatedStorageProps} from '../PaginatedStorage';
import {PaginatedStorageNodesTable} from '../PaginatedStorageNodesTable/PaginatedStorageNodesTable';
import {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 {searchValue, visibleEntities, nodesUptimeFilter, handleShowAllNodes} =
useStorageQueryParams();
const viewerNodesHandlerHasGrouping = useViewerNodesHandlerHasGrouping();
const {handleDataFetched, columnsSettings} = useStorageColumnsSettings();
const {columnsToShow, columnsToSelect, setColumns} = useStorageNodesColumnsToSelect({
database,
viewContext,
columnsSettings,
});
return (
<PaginatedTableWithLayout
controls={
<StorageNodesControlsWithTableState
withTypeSelector
withGroupBySelect={viewerNodesHandlerHasGrouping}
columnsToSelect={columnsToSelect}
handleSelectedColumnsUpdate={setColumns}
/>
}
table={
<PaginatedStorageNodesTable
database={database}
nodeId={nodeId}
groupId={groupId}
searchValue={searchValue}
visibleEntities={visibleEntities}
nodesUptimeFilter={nodesUptimeFilter}
onShowAll={handleShowAllNodes}
scrollContainerRef={scrollContainerRef}
renderErrorMessage={renderPaginatedTableErrorMessage}
columns={columnsToShow}
initialEntitiesCount={initialEntitiesCount}
onDataFetched={handleDataFetched}
/>
}
tableWrapperProps={{
scrollContainerRef,
scrollDependencies: [searchValue, visibleEntities, nodesUptimeFilter],
}}
/>
);
}