11import React from 'react' ;
22
3+ import { LoaderWrapper } from '../../../components/LoaderWrapper/LoaderWrapper' ;
34import type { RenderControls , RenderErrorMessage } from '../../../components/PaginatedTable' ;
45import { ResizeablePaginatedTable } from '../../../components/PaginatedTable' ;
6+ import {
7+ useCapabilitiesLoaded ,
8+ useStorageGroupsHandlerAvailable ,
9+ } from '../../../store/reducers/capabilities/hooks' ;
510import { VISIBLE_ENTITIES } from '../../../store/reducers/storage/constants' ;
611import type { VisibleEntities } from '../../../store/reducers/storage/types' ;
712
813import { StorageGroupsEmptyDataMessage } from './StorageGroupsEmptyDataMessage' ;
914import { STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY } from './columns/getStorageGroupsColumns' ;
1015import { useGetStorageGroupsColumns } from './columns/hooks' ;
11- import { getStorageGroups } from './getGroups' ;
16+ import { useGroupsGetter } from './getGroups' ;
1217import i18n from './i18n' ;
1318
1419interface PaginatedStorageGroupsProps {
@@ -36,6 +41,11 @@ export const PaginatedStorageGroups = ({
3641} : PaginatedStorageGroupsProps ) => {
3742 const columns = useGetStorageGroupsColumns ( visibleEntities ) ;
3843
44+ const capabilitiesLoaded = useCapabilitiesLoaded ( ) ;
45+ const groupsHandlerAvailable = useStorageGroupsHandlerAvailable ( ) ;
46+
47+ const fetchData = useGroupsGetter ( groupsHandlerAvailable ) ;
48+
3949 const tableFilters = React . useMemo ( ( ) => {
4050 return { searchValue, visibleEntities, database, nodeId} ;
4151 } , [ searchValue , visibleEntities , database , nodeId ] ) ;
@@ -54,17 +64,19 @@ export const PaginatedStorageGroups = ({
5464 } ;
5565
5666 return (
57- < ResizeablePaginatedTable
58- columnsWidthLSKey = { STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY }
59- parentContainer = { parentContainer }
60- columns = { columns }
61- fetchData = { getStorageGroups }
62- limit = { 50 }
63- renderControls = { renderControls }
64- renderErrorMessage = { renderErrorMessage }
65- renderEmptyDataMessage = { renderEmptyDataMessage }
66- filters = { tableFilters }
67- tableName = "storage-groups"
68- />
67+ < LoaderWrapper loading = { ! capabilitiesLoaded } >
68+ < ResizeablePaginatedTable
69+ columnsWidthLSKey = { STORAGE_GROUPS_COLUMNS_WIDTH_LS_KEY }
70+ parentContainer = { parentContainer }
71+ columns = { columns }
72+ fetchData = { fetchData }
73+ limit = { 50 }
74+ renderControls = { renderControls }
75+ renderErrorMessage = { renderErrorMessage }
76+ renderEmptyDataMessage = { renderEmptyDataMessage }
77+ filters = { tableFilters }
78+ tableName = "storage-groups"
79+ />
80+ </ LoaderWrapper >
6981 ) ;
7082} ;
0 commit comments