@@ -5,6 +5,7 @@ import DataTable, {Column, Settings, SortOrder} from '@yandex-cloud/react-data-t
55import { Popover , PopoverBehavior } from '@gravity-ui/uikit' ;
66
77import { VisibleEntities } from '../../../store/reducers/storage' ;
8+ import { NodesUptimeFilterValues } from '../../../utils/nodes' ;
89
910import { EmptyFilter } from '../EmptyFilter/EmptyFilter' ;
1011import Pdisk from '../Pdisk/Pdisk' ;
@@ -28,6 +29,7 @@ interface StorageNodesProps {
2829 nodes : any ;
2930 tableSettings : Settings ;
3031 visibleEntities : keyof typeof VisibleEntities ;
32+ nodesUptimeFilter : keyof typeof NodesUptimeFilterValues ;
3133 onShowAll ?: VoidFunction ;
3234}
3335
@@ -61,7 +63,13 @@ function setSortOrder(visibleEntities: keyof typeof VisibleEntities): SortOrder
6163 }
6264}
6365
64- function StorageNodes ( { data, tableSettings, visibleEntities, onShowAll} : StorageNodesProps ) {
66+ function StorageNodes ( {
67+ data,
68+ tableSettings,
69+ visibleEntities,
70+ onShowAll,
71+ nodesUptimeFilter,
72+ } : StorageNodesProps ) {
6573 const allColumns : Column < any > [ ] = [
6674 {
6775 name : TableColumnsIds . NodeId ,
@@ -124,25 +132,33 @@ function StorageNodes({data, tableSettings, visibleEntities, onShowAll}: Storage
124132
125133 if ( visibleEntities === VisibleEntities . Space ) {
126134 columns = allColumns . filter ( ( col ) => col . name !== TableColumnsIds . Missing ) ;
135+ }
136+
137+ if ( ! data . length ) {
138+ let message ;
127139
128- if ( ! data . length ) {
129- return (
130- < EmptyFilter
131- title = { i18n ( 'empty.out_of_space' ) }
132- showAll = { i18n ( 'show_all' ) }
133- onShowAll = { onShowAll }
134- />
135- ) ;
140+ if ( visibleEntities === VisibleEntities . Space ) {
141+ message = i18n ( 'empty.out_of_space' ) ;
142+ }
143+
144+ if ( visibleEntities === VisibleEntities . Missing ) {
145+ message = i18n ( 'empty.degraded' ) ;
146+ }
147+
148+ if ( nodesUptimeFilter === NodesUptimeFilterValues . SmallUptime ) {
149+ message = i18n ( 'empty.small_uptime' ) ;
150+ }
151+
152+ if (
153+ visibleEntities !== VisibleEntities . All &&
154+ nodesUptimeFilter !== NodesUptimeFilterValues . All
155+ ) {
156+ message = i18n ( 'empty.several_filters' ) ;
157+ }
158+
159+ if ( message ) {
160+ return < EmptyFilter title = { message } showAll = { i18n ( 'show_all' ) } onShowAll = { onShowAll } /> ;
136161 }
137- }
138- if ( visibleEntities === VisibleEntities . Missing && ! data . length ) {
139- return (
140- < EmptyFilter
141- title = { i18n ( 'empty.degraded' ) }
142- showAll = { i18n ( 'show_all' ) }
143- onShowAll = { onShowAll }
144- />
145- ) ;
146162 }
147163
148164 return data ? (
0 commit comments