Skip to content

Commit 21b502f

Browse files
Merge pull request #2408 from upalatucci/loading-vm
CNV-55107: loading on vm change
2 parents 939001c + 255aab0 commit 21b502f

File tree

3 files changed

+30
-11
lines changed

3 files changed

+30
-11
lines changed

src/utils/components/HorizontalNavbar/HorizontalNavbar.tsx

+17-7
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,26 @@ import { V1VirtualMachine } from '@kubevirt-ui/kubevirt-api/kubevirt';
77
import { isEmpty } from '@kubevirt-utils/utils/utils';
88
import { Nav, NavList } from '@patternfly/react-core';
99

10+
import StateHandler from '../StateHandler/StateHandler';
11+
1012
import useDynamicPages from './utils/useDynamicPages';
1113
import { NavPageKubevirt, trimLastHistoryPath } from './utils/utils';
1214

1315
import './horizontal-nav-bar.scss';
1416

1517
type HorizontalNavbarProps = {
18+
expandedSpecLoading?: boolean;
1619
instanceTypeExpandedSpec?: V1VirtualMachine;
1720
pages: NavPageKubevirt[];
1821
vm?: V1VirtualMachine;
1922
};
2023

21-
const HorizontalNavbar: FC<HorizontalNavbarProps> = ({ instanceTypeExpandedSpec, pages, vm }) => {
24+
const HorizontalNavbar: FC<HorizontalNavbarProps> = ({
25+
expandedSpecLoading,
26+
instanceTypeExpandedSpec,
27+
pages,
28+
vm,
29+
}) => {
2230
const location = useLocation();
2331

2432
const params = useParams();
@@ -73,12 +81,14 @@ const HorizontalNavbar: FC<HorizontalNavbarProps> = ({ instanceTypeExpandedSpec,
7381
return (
7482
<Route
7583
Component={(props) => (
76-
<Component
77-
instanceTypeExpandedSpec={instanceTypeExpandedSpec}
78-
obj={vm}
79-
params={params}
80-
{...props}
81-
/>
84+
<StateHandler loaded={!expandedSpecLoading} withBullseye>
85+
<Component
86+
instanceTypeExpandedSpec={instanceTypeExpandedSpec}
87+
obj={vm}
88+
params={params}
89+
{...props}
90+
/>
91+
</StateHandler>
8292
)}
8393
key={page.href}
8494
path={page.href}

src/utils/components/StateHandler/StateHandler.tsx

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import React, { FC } from 'react';
22

33
import { useKubevirtTranslation } from '@kubevirt-utils/hooks/useKubevirtTranslation';
4-
import { Alert, AlertVariant } from '@patternfly/react-core';
4+
import { Alert, AlertVariant, Bullseye } from '@patternfly/react-core';
55

66
import Loading from '../Loading/Loading';
77

88
type StateHandlerProps = {
99
error?: any;
1010
loaded: boolean;
11+
withBullseye?: boolean;
1112
};
1213

13-
const StateHandler: FC<StateHandlerProps> = ({ children, error, loaded }) => {
14+
const StateHandler: FC<StateHandlerProps> = ({ children, error, loaded, withBullseye = false }) => {
1415
const { t } = useKubevirtTranslation();
1516

1617
if (error) {
@@ -22,7 +23,13 @@ const StateHandler: FC<StateHandlerProps> = ({ children, error, loaded }) => {
2223
}
2324

2425
if (!loaded) {
25-
return <Loading />;
26+
return withBullseye ? (
27+
<Bullseye>
28+
<Loading />
29+
</Bullseye>
30+
) : (
31+
<Loading />
32+
);
2633
}
2734

2835
return <>{children}</>;

src/views/virtualmachines/details/VirtualMachineNavPage.tsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ const VirtualMachineNavPage: React.FC<VirtualMachineDetailsPageProps> = ({
3232
namespace,
3333
});
3434

35-
const [instanceTypeExpandedSpec] = useInstanceTypeExpandSpec(vm);
35+
const [instanceTypeExpandedSpec, expandedSpecLoading] = useInstanceTypeExpandSpec(vm);
3636

3737
const pages = useVirtualMachineTabs();
3838

@@ -43,6 +43,7 @@ const VirtualMachineNavPage: React.FC<VirtualMachineDetailsPageProps> = ({
4343
</Bullseye>
4444
);
4545
}
46+
4647
return (
4748
<SidebarEditorProvider>
4849
<VirtualMachineNavPageTitle
@@ -51,6 +52,7 @@ const VirtualMachineNavPage: React.FC<VirtualMachineDetailsPageProps> = ({
5152
/>
5253
<div className="VirtualMachineNavPage--tabs__main">
5354
<HorizontalNavbar
55+
expandedSpecLoading={expandedSpecLoading}
5456
instanceTypeExpandedSpec={instanceTypeExpandedSpec}
5557
pages={pages}
5658
vm={vm}

0 commit comments

Comments
 (0)