@@ -4,6 +4,7 @@ import DataTable from '@gravity-ui/react-data-table';
44import { Select , TableColumnSetup } from '@gravity-ui/uikit' ;
55import { Helmet } from 'react-helmet-async' ;
66
7+ import { AutoRefreshControl } from '../../components/AutoRefreshControl/AutoRefreshControl' ;
78import { ResponseError } from '../../components/Errors/ResponseError' ;
89import { Loader } from '../../components/Loader' ;
910import { ResizeableDataTable } from '../../components/ResizeableDataTable/ResizeableDataTable' ;
@@ -17,8 +18,8 @@ import {
1718 selectStatusFilter ,
1819 selectVersionFilter ,
1920} from '../../store/reducers/clusters/selectors' ;
20- import { DEFAULT_POLLING_INTERVAL , DEFAULT_TABLE_SETTINGS } from '../../utils/constants' ;
21- import { useTypedDispatch , useTypedSelector } from '../../utils/hooks' ;
21+ import { DEFAULT_TABLE_SETTINGS } from '../../utils/constants' ;
22+ import { useAutoRefreshInterval , useTypedDispatch , useTypedSelector } from '../../utils/hooks' ;
2223import { getMinorVersion } from '../../utils/versions' ;
2324
2425import { ClustersStatistics } from './ClustersStatistics' ;
@@ -31,8 +32,9 @@ import {useSelectedColumns} from './useSelectedColumns';
3132import './Clusters.scss' ;
3233
3334export function Clusters ( ) {
35+ const [ autoRefreshInterval ] = useAutoRefreshInterval ( ) ;
3436 const query = clustersApi . useGetClustersListQuery ( undefined , {
35- pollingInterval : DEFAULT_POLLING_INTERVAL ,
37+ pollingInterval : autoRefreshInterval ,
3638 } ) ;
3739
3840 const dispatch = useTypedDispatch ( ) ;
@@ -107,10 +109,6 @@ export function Clusters() {
107109 . map ( ( el ) => ( { value : el , content : el } ) ) ;
108110 } , [ clusters ] ) ;
109111
110- if ( query . isLoading ) {
111- return < Loader size = "l" /> ;
112- }
113-
114112 return (
115113 < div className = { b ( ) } >
116114 < Helmet >
@@ -175,23 +173,27 @@ export function Clusters() {
175173 sortable = { false }
176174 />
177175 </ div >
176+ < AutoRefreshControl />
178177 </ div >
179178 { query . isError ? < ResponseError error = { query . error } className = { b ( 'error' ) } /> : null }
180- < div className = { b ( 'table-wrapper' ) } >
181- < div className = { b ( 'table-content' ) } >
182- < ResizeableDataTable
183- columnsWidthLSKey = { CLUSTERS_COLUMNS_WIDTH_LS_KEY }
184- wrapperClassName = { b ( 'table' ) }
185- data = { filteredClusters }
186- columns = { columnsToShow }
187- settings = { { ...DEFAULT_TABLE_SETTINGS , dynamicRender : false } }
188- initialSortOrder = { {
189- columnId : COLUMNS_NAMES . TITLE ,
190- order : DataTable . ASCENDING ,
191- } }
192- />
179+ { query . isLoading ? < Loader size = "l" /> : null }
180+ { query . fulfilledTimeStamp ? (
181+ < div className = { b ( 'table-wrapper' ) } >
182+ < div className = { b ( 'table-content' ) } >
183+ < ResizeableDataTable
184+ columnsWidthLSKey = { CLUSTERS_COLUMNS_WIDTH_LS_KEY }
185+ wrapperClassName = { b ( 'table' ) }
186+ data = { filteredClusters }
187+ columns = { columnsToShow }
188+ settings = { { ...DEFAULT_TABLE_SETTINGS , dynamicRender : false } }
189+ initialSortOrder = { {
190+ columnId : COLUMNS_NAMES . TITLE ,
191+ order : DataTable . ASCENDING ,
192+ } }
193+ />
194+ </ div >
193195 </ div >
194- </ div >
196+ ) : null }
195197 </ div >
196198 ) ;
197199}
0 commit comments