11import { Flex , Tab , TabList , TabProvider } from '@gravity-ui/uikit' ;
22
3+ import { EmptyState } from '../../../../../components/EmptyState/EmptyState' ;
4+ import { Illustration } from '../../../../../components/Illustration' ;
5+ import { LoaderWrapper } from '../../../../../components/LoaderWrapper/LoaderWrapper' ;
6+ import { useShouldShowDatabaseNetworkTable } from '../../../../../components/NetworkTable/hooks' ;
7+ import { useCapabilitiesLoaded } from '../../../../../store/reducers/capabilities/hooks' ;
38import { TENANT_NETWORK_TABS_IDS } from '../../../../../store/reducers/tenant/constants' ;
49import type { AdditionalNodesProps } from '../../../../../types/additionalProps' ;
510import { cn } from '../../../../../utils/cn' ;
@@ -24,6 +29,8 @@ interface TenantNetworkProps {
2429}
2530
2631export function TenantNetwork ( { tenantName, additionalNodesProps} : TenantNetworkProps ) {
32+ const capabilitiesLoaded = useCapabilitiesLoaded ( ) ;
33+ const shouldShowNetworkTable = useShouldShowDatabaseNetworkTable ( ) ;
2734 const { networkTab, handleNetworkTabChange} = useTenantNetworkQueryParams ( ) ;
2835
2936 const renderTabContent = ( ) => {
@@ -50,25 +57,48 @@ export function TenantNetwork({tenantName, additionalNodesProps}: TenantNetworkP
5057 }
5158 } ;
5259
53- return (
54- < Flex direction = "column" gap = { 4 } className = { b ( ) } >
55- < Flex direction = "column" gap = { 3 } className = { b ( 'tabs-container' ) } >
56- < TabProvider value = { networkTab } >
57- < TabList size = "m" >
58- { networkTabs . map ( ( { id, title} ) => {
59- return (
60- < Tab key = { id } value = { id } onClick = { ( ) => handleNetworkTabChange ( id ) } >
61- { title }
62- </ Tab >
63- ) ;
64- } ) }
65- </ TabList >
66- </ TabProvider >
60+ const renderNetworkStatsUnavailable = ( ) => {
61+ return (
62+ < EmptyState
63+ image = { < Illustration name = "thumbsUp" /> }
64+ title = { i18n ( 'network-stats-unavailable.title' ) }
65+ description = { i18n ( 'network-stats-unavailable.description' ) }
66+ size = "s"
67+ />
68+ ) ;
69+ } ;
70+
71+ const renderContent = ( ) => {
72+ if ( ! shouldShowNetworkTable ) {
73+ return renderNetworkStatsUnavailable ( ) ;
74+ }
6775
68- < Flex direction = "column" className = { b ( 'tab-content' ) } >
69- { renderTabContent ( ) }
76+ return (
77+ < Flex direction = "column" gap = { 4 } className = { b ( ) } >
78+ < Flex direction = "column" gap = { 3 } className = { b ( 'tabs-container' ) } >
79+ < TabProvider value = { networkTab } >
80+ < TabList size = "m" >
81+ { networkTabs . map ( ( { id, title} ) => {
82+ return (
83+ < Tab
84+ key = { id }
85+ value = { id }
86+ onClick = { ( ) => handleNetworkTabChange ( id ) }
87+ >
88+ { title }
89+ </ Tab >
90+ ) ;
91+ } ) }
92+ </ TabList >
93+ </ TabProvider >
94+
95+ < Flex direction = "column" className = { b ( 'tab-content' ) } >
96+ { renderTabContent ( ) }
97+ </ Flex >
7098 </ Flex >
7199 </ Flex >
72- </ Flex >
73- ) ;
100+ ) ;
101+ } ;
102+
103+ return < LoaderWrapper loading = { ! capabilitiesLoaded } > { renderContent ( ) } </ LoaderWrapper > ;
74104}
0 commit comments