1- import { EFlag } from '../../../types/api/enums' ;
21import { HOUR_IN_SECONDS } from '../../../utils/constants' ;
32import { calcUptimeInSeconds } from '../../../utils/dataFormatters/dataFormatters' ;
4- import { prepareSearchValue } from '../../../utils/filters' ;
53import { NodesUptimeFilterValues } from '../../../utils/nodes' ;
6- import { ProblemFilterValues } from '../settings/settings' ;
7- import type { ProblemFilterValue } from '../settings/types' ;
8-
9- import type { NodesPreparedEntity } from './types' ;
104
115// ==== Filters ====
126
13- const filterNodesByProblemsStatus = (
14- nodesList : NodesPreparedEntity [ ] = [ ] ,
15- problemFilter : ProblemFilterValue ,
16- ) => {
17- if ( problemFilter === ProblemFilterValues . ALL ) {
18- return nodesList ;
19- }
20-
21- return nodesList . filter ( ( { SystemState} ) => {
22- return SystemState && SystemState !== EFlag . Green ;
23- } ) ;
24- } ;
25-
267export const filterNodesByUptime = < T extends { StartTime ?: string } > (
278 nodesList : T [ ] = [ ] ,
289 nodesUptimeFilter : NodesUptimeFilterValues ,
@@ -34,33 +15,3 @@ export const filterNodesByUptime = <T extends {StartTime?: string}>(
3415 return ! StartTime || calcUptimeInSeconds ( StartTime ) < HOUR_IN_SECONDS ;
3516 } ) ;
3617} ;
37-
38- const filterNodesBySearchValue = ( nodesList : NodesPreparedEntity [ ] = [ ] , searchValue : string ) => {
39- if ( ! searchValue ) {
40- return nodesList ;
41- }
42- const re = prepareSearchValue ( searchValue ) ;
43-
44- return nodesList . filter ( ( node ) => {
45- return node . Host ? re . test ( node . Host ) || re . test ( String ( node . NodeId ) ) : true ;
46- } ) ;
47- } ;
48-
49- export function filterNodes (
50- nodesList : NodesPreparedEntity [ ] = [ ] ,
51- {
52- uptimeFilter,
53- searchValue,
54- problemFilter,
55- } : {
56- uptimeFilter : NodesUptimeFilterValues ;
57- searchValue : string ;
58- problemFilter : ProblemFilterValue ;
59- } ,
60- ) {
61- let result = filterNodesByUptime ( nodesList , uptimeFilter ) ;
62- result = filterNodesByProblemsStatus ( result , problemFilter ) ;
63- result = filterNodesBySearchValue ( result , searchValue ) ;
64-
65- return result ;
66- }
0 commit comments