@@ -74,6 +74,8 @@ export default function ShowCluster() {
7474 const [ searchSchedulers , setSearchSchedulers ] = useState ( '' ) ;
7575 const [ searchSeedPeers , setSearchSeedPeer ] = useState ( '' ) ;
7676 const [ scheduler , setScheduler ] = useState < getSchedulersResponse [ ] > ( [ ] ) ;
77+ const [ schedulerCount , setSchedulerCount ] = useState < getSchedulersResponse [ ] > ( [ ] ) ;
78+ const [ seedPeerCount , setSeedPeerCount ] = useState < getSeedPeersResponse [ ] > ( [ ] ) ;
7779 const [ seedPeer , setSeedPeer ] = useState < getSeedPeersResponse [ ] > ( [ ] ) ;
7880 const [ cluster , setCluster ] = useState ( {
7981 id : 0 ,
@@ -141,6 +143,7 @@ export default function ShowCluster() {
141143 } ) ;
142144
143145 setSeedPeer ( seedPeer ) ;
146+ setSeedPeerCount ( seedPeer ) ;
144147 }
145148
146149 if ( cluster . scheduler_cluster_id !== 0 ) {
@@ -151,6 +154,7 @@ export default function ShowCluster() {
151154 } ) ;
152155
153156 setScheduler ( scheduler ) ;
157+ setSchedulerCount ( scheduler ) ;
154158 }
155159
156160 setSchedulerTableIsLoading ( false ) ;
@@ -168,7 +172,6 @@ export default function ShowCluster() {
168172 } , [ params . id ] ) ;
169173
170174 useMemo ( ( ) => {
171- const totalPage = Math . ceil ( scheduler . length / DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
172175 scheduler . sort ( ( a , b ) => new Date ( b . created_at ) . getTime ( ) - new Date ( a . created_at ) . getTime ( ) ) ;
173176 scheduler . sort ( ( a , b ) => {
174177 if ( a . state < b . state ) {
@@ -179,7 +182,7 @@ export default function ShowCluster() {
179182 return 0 ;
180183 }
181184 } ) ;
182-
185+ const totalPage = Math . ceil ( scheduler . length / DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
183186 const currentPageData = getPaginatedList ( scheduler , schedulerPage , DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
184187
185188 if ( currentPageData . length === 0 && schedulerPage > 1 ) {
@@ -191,8 +194,6 @@ export default function ShowCluster() {
191194 } , [ scheduler , schedulerPage ] ) ;
192195
193196 useMemo ( ( ) => {
194- const totalPage = Math . ceil ( seedPeer . length / DEFAULT_SEED_PEER_TABLE_PAGE_SIZE ) ;
195-
196197 seedPeer . sort ( ( a , b ) => new Date ( b . created_at ) . getTime ( ) - new Date ( a . created_at ) . getTime ( ) ) ;
197198 seedPeer . sort ( ( a , b ) => {
198199 if ( a . state < b . state ) {
@@ -203,7 +204,7 @@ export default function ShowCluster() {
203204 return 0 ;
204205 }
205206 } ) ;
206-
207+ const totalPage = Math . ceil ( seedPeer . length / DEFAULT_SEED_PEER_TABLE_PAGE_SIZE ) ;
207208 const currentPageData = getPaginatedList ( seedPeer , seedPeerPage , DEFAULT_SEED_PEER_TABLE_PAGE_SIZE ) ;
208209
209210 if ( currentPageData ?. length === 0 && seedPeerPage > 1 ) {
@@ -215,10 +216,10 @@ export default function ShowCluster() {
215216 } , [ seedPeer , seedPeerPage ] ) ;
216217
217218 const numberOfActiveSchedulers =
218- Array . isArray ( scheduler ) && scheduler ?. filter ( ( item : any ) => item ?. state === 'active' ) . length ;
219+ Array . isArray ( schedulerCount ) && schedulerCount ?. filter ( ( item : any ) => item ?. state === 'active' ) . length ;
219220
220221 const numberOfActiveSeedPeers =
221- Array . isArray ( seedPeer ) && seedPeer ?. filter ( ( item : any ) => item ?. state === 'active' ) . length ;
222+ Array . isArray ( seedPeerCount ) && seedPeerCount ?. filter ( ( item : any ) => item ?. state === 'active' ) . length ;
222223
223224 const handleClose = ( _event : any , reason ?: string ) => {
224225 if ( reason === 'clickaway' ) {
@@ -282,6 +283,7 @@ export default function ShowCluster() {
282283 } ) ;
283284
284285 setScheduler ( scheduler ) ;
286+ setSchedulerCount ( scheduler ) ;
285287 setDeleteLoadingButton ( false ) ;
286288 }
287289 } catch ( error ) {
@@ -315,6 +317,7 @@ export default function ShowCluster() {
315317 } ) ;
316318
317319 setSeedPeer ( seedPeer ) ;
320+ setSeedPeerCount ( seedPeer ) ;
318321 setDeleteLoadingButton ( false ) ;
319322 }
320323 } catch ( error ) {
@@ -344,39 +347,24 @@ export default function ShowCluster() {
344347
345348 const searchScheduler = async ( ) => {
346349 try {
350+ setSchedulerTableIsLoading ( true ) ;
351+
347352 const schedulers = searchSchedulers
348- ? scheduler . filter ( ( item ) => {
349- return item . host_name === searchSchedulers ;
353+ ? await getSchedulers ( {
354+ scheduler_cluster_id : String ( cluster . scheduler_cluster_id ) ,
355+ page : 1 ,
356+ per_page : MAX_PAGE_SIZE ,
357+ host_name : searchSchedulers ,
350358 } )
351- : scheduler ;
352-
353- if ( searchSchedulers ) {
354- const totalPage = Math . ceil ( schedulers . length / DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
355-
356- setSchedulerTotalPages ( totalPage ) ;
357- setAllSchedlers ( schedulers ) ;
358- } else {
359- const totalPage = Math . ceil ( scheduler . length / DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
360- scheduler . sort ( ( a , b ) => new Date ( b . created_at ) . getTime ( ) - new Date ( a . created_at ) . getTime ( ) ) ;
361- scheduler . sort ( ( a , b ) => {
362- if ( a . state < b . state ) {
363- return - 1 ;
364- } else if ( a . state > b . state ) {
365- return 1 ;
366- } else {
367- return 0 ;
368- }
369- } ) ;
370- const currentPageData = getPaginatedList ( scheduler , schedulerPage , DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
371-
372- if ( currentPageData . length === 0 && schedulerPage > 1 ) {
373- setSchedulerPage ( schedulerPage - 1 ) ;
374- }
359+ : await getSchedulers ( {
360+ scheduler_cluster_id : String ( cluster . scheduler_cluster_id ) ,
361+ page : 1 ,
362+ per_page : MAX_PAGE_SIZE ,
363+ } ) ;
375364
376- setSchedulerPage ( 1 ) ;
377- setSchedulerTotalPages ( totalPage ) ;
378- setAllSchedlers ( currentPageData ) ;
379- }
365+ setScheduler ( schedulers ) ;
366+ setSchedulerPage ( 1 ) ;
367+ setSchedulerTableIsLoading ( false ) ;
380368 } catch ( error ) {
381369 if ( error instanceof Error ) {
382370 setErrorMessage ( true ) ;
@@ -388,39 +376,23 @@ export default function ShowCluster() {
388376
389377 const searchSeedPeer = async ( ) => {
390378 try {
379+ setSeedPeerTableIsLoading ( true ) ;
391380 const seedPeers = searchSeedPeers
392- ? seedPeer . filter ( ( item ) => {
393- return item . host_name === searchSeedPeers ;
381+ ? await getSeedPeers ( {
382+ seed_peer_cluster_id : String ( cluster . seed_peer_cluster_id ) ,
383+ page : 1 ,
384+ per_page : MAX_PAGE_SIZE ,
385+ host_name : searchSeedPeers ,
394386 } )
395- : seedPeer ;
396-
397- if ( searchSeedPeers ) {
398- const totalPage = Math . ceil ( seedPeers . length / DEFAULT_SCHEDULER_TABLE_PAGE_SIZE ) ;
399-
400- setAllSeedPeers ( seedPeers ) ;
401- setSeedPeerTotalPages ( totalPage || 1 ) ;
402- } else {
403- const totalPage = Math . ceil ( seedPeers . length / DEFAULT_SEED_PEER_TABLE_PAGE_SIZE ) ;
404- seedPeers . sort ( ( a , b ) => new Date ( b . created_at ) . getTime ( ) - new Date ( a . created_at ) . getTime ( ) ) ;
405- seedPeers . sort ( ( a , b ) => {
406- if ( a . state < b . state ) {
407- return - 1 ;
408- } else if ( a . state > b . state ) {
409- return 1 ;
410- } else {
411- return 0 ;
412- }
413- } ) ;
414- const currentPageData = getPaginatedList ( seedPeer , seedPeerPage , DEFAULT_SEED_PEER_TABLE_PAGE_SIZE ) ;
387+ : await getSeedPeers ( {
388+ seed_peer_cluster_id : String ( cluster . seed_peer_cluster_id ) ,
389+ page : 1 ,
390+ per_page : MAX_PAGE_SIZE ,
391+ } ) ;
415392
416- if ( currentPageData ?. length === 0 && seedPeerPage > 1 ) {
417- setSeedPeerPage ( seedPeerPage - 1 ) ;
418- }
419-
420- setSeedPeerPage ( 1 ) ;
421- setSeedPeerTotalPages ( totalPage ) ;
422- setAllSeedPeers ( currentPageData ) ;
423- }
393+ setSeedPeer ( seedPeers ) ;
394+ setSeedPeerPage ( 1 ) ;
395+ setSeedPeerTableIsLoading ( false ) ;
424396 } catch ( error ) {
425397 if ( error instanceof Error ) {
426398 setErrorMessage ( true ) ;
@@ -594,7 +566,7 @@ export default function ShowCluster() {
594566 < Chip
595567 size = "small"
596568 icon = { < Box component = "img" src = "/icons/cluster/total.svg" sx = { { width : '1.2rem' , height : '1.2rem' } } /> }
597- label = { `Total: ${ scheduler . length } ` }
569+ label = { `Total: ${ schedulerCount . length } ` }
598570 />
599571 </ Paper >
600572 < Paper
@@ -618,7 +590,7 @@ export default function ShowCluster() {
618590 < Chip
619591 size = "small"
620592 icon = { < Box component = "img" src = "/icons/cluster/total.svg" sx = { { width : '1.2rem' , height : '1.2rem' } } /> }
621- label = { `Total: ${ seedPeer . length } ` }
593+ label = { `Total: ${ seedPeerCount . length } ` }
622594 />
623595 </ Paper >
624596 </ Box >
@@ -638,7 +610,7 @@ export default function ShowCluster() {
638610 onInputChange = { ( _event , newInputValue ) => {
639611 setSearchSchedulers ( newInputValue ) ;
640612 } }
641- options = { scheduler . map ( ( option ) => option ?. host_name ) }
613+ options = { schedulerCount . map ( ( option ) => option ?. host_name ) }
642614 renderInput = { ( params ) => < TextField { ...params } label = "Search" /> }
643615 />
644616 </ Stack >
@@ -916,7 +888,7 @@ export default function ShowCluster() {
916888 onInputChange = { ( _event , newInputValue ) => {
917889 setSearchSeedPeer ( newInputValue ) ;
918890 } }
919- options = { seedPeer . map ( ( option ) => option . host_name ) }
891+ options = { seedPeerCount . map ( ( option ) => option . host_name ) }
920892 renderInput = { ( params ) => < TextField { ...params } label = "Search" /> }
921893 />
922894 </ Stack >
0 commit comments