Skip to content

Commit de65aff

Browse files
fixing this in useProvidersConfigResource
1 parent d641813 commit de65aff

File tree

2 files changed

+9
-9
lines changed

2 files changed

+9
-9
lines changed

src/components/Graphs/useGraph.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useMemo, useEffect, useRef, useState } from 'react';
1+
import { useMemo, useEffect, useState } from 'react';
22
import { useApiResource, useProvidersConfigResource } from '../../lib/api/useApiResource';
33
import { ManagedResourcesRequest } from '../../lib/api/types/crossplane/listManagedResources';
44
import { resourcesInterval } from '../../lib/shared/constants';
@@ -92,13 +92,11 @@ export function useGraph(colorBy: ColorBy, onYamlClick: (item: ManagedResourceIt
9292
refreshInterval: resourcesInterval,
9393
});
9494

95-
const initialLoaded = useRef(false);
96-
const isInitialLoading = (managedResourcesLoading || providerConfigsLoading) && !initialLoaded.current;
95+
const loading = managedResourcesLoading || providerConfigsLoading;
9796
const error = managedResourcesError || providerConfigsError;
9897

9998
const treeData = useMemo(() => {
10099
if (!managedResources || !providerConfigsList) return [];
101-
if (!initialLoaded.current) initialLoaded.current = true;
102100
const allNodesMap = new Map<string, NodeData>();
103101
managedResources.forEach((group: ManagedResourceGroup) => {
104102
group.items?.forEach((item: ManagedResourceItem) => {
@@ -162,7 +160,7 @@ export function useGraph(colorBy: ColorBy, onYamlClick: (item: ManagedResourceIt
162160
});
163161
});
164162
return Array.from(allNodesMap.values());
165-
}, [managedResources, providerConfigsList, onYamlClick, initialLoaded]);
163+
}, [managedResources, providerConfigsList, onYamlClick]);
166164

167165
const colorMap = useMemo(() => generateColorMap(treeData, colorBy), [treeData, colorBy]);
168166

@@ -180,5 +178,5 @@ export function useGraph(colorBy: ColorBy, onYamlClick: (item: ManagedResourceIt
180178
setEdges(edges);
181179
}, [treeData, colorBy, colorMap]);
182180

183-
return { nodes, edges, colorMap, loading: isInitialLoading, error };
181+
return { nodes, edges, colorMap, loading, error };
184182
}

src/lib/api/useApiResource.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useContext, useEffect, useState } from 'react';
1+
import { useContext, useEffect, useState, useRef } from 'react';
22
import useSWR, { SWRConfiguration, useSWRConfig } from 'swr';
33
import { fetchApiServerJson } from './fetch';
44
import { ApiConfigContext } from '../../components/Shared/k8s';
@@ -120,17 +120,19 @@ export const useProvidersConfigResource = (config?: SWRConfiguration) => {
120120
};
121121
const [configs, setConfigs] = useState<ProviderConfigs[]>([]);
122122
const [isLoading, setIsLoading] = useState(true);
123+
const initialLoaded = useRef(false);
123124

124125
useEffect(() => {
125126
const fetchDataAndUpdateState = async () => {
126-
setIsLoading(true);
127+
if (!initialLoaded.current) setIsLoading(true);
127128
try {
128129
await fetchProviderConfigsData();
129130
const finalData = await fetchProviderConfigs();
130131

131132
setConfigs(finalData);
132-
if (finalData.length > 0) {
133+
if (!initialLoaded.current) {
133134
setIsLoading(false);
135+
initialLoaded.current = true;
134136
}
135137
} catch (_) {
136138
setIsLoading(false);

0 commit comments

Comments
 (0)