Skip to content

Commit 744b91e

Browse files
author
colinmcneil
committed
Fix infinite sync issue
1 parent 4d0e73d commit 744b91e

File tree

3 files changed

+5
-30
lines changed

3 files changed

+5
-30
lines changed

src/extension/ui/src/App.tsx

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import { useRequiredImages } from './queries/useRequiredImages';
1212
import { useMCPClient } from './queries/useMCPClient';
1313
import { useConfig } from './queries/useConfig';
1414
import { useSecrets } from './queries/useSecrets';
15+
import { syncConfigWithRegistry, syncRegistryWithConfig } from './Registry';
1516

1617
export const client = createDockerDesktopClient();
1718

@@ -52,15 +53,9 @@ export function App() {
5253
secrets.isLoading;
5354

5455
useEffect(() => {
55-
if (catalogAll.registryItems && config.config) {
56-
config.syncConfigWithRegistry(catalogAll.registryItems);
57-
}
58-
}, [catalogAll.registryItems]);
59-
60-
useEffect(() => {
61-
if (config.config) {
56+
if (config.config && catalogAll.registryItems) {
6257
console.log('registryItems', catalogAll.registryItems)
63-
catalogAll.syncRegistryWithConfig();
58+
syncRegistryWithConfig(client, catalogAll.registryItems, config.config);
6459
}
6560
}, [config.config]);
6661

src/extension/ui/src/Registry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export const syncConfigWithRegistry = async (client: v1.DockerDesktopClient, reg
7373
return;
7474
}
7575
console.log('SYNC STARTED. REGISTRY -> CONFIG', registry, config)
76-
const oldConfigString = JSON.stringify({ config })
76+
const oldConfigString = JSON.stringify(config)
7777
for (const [registryItemName, registryItem] of Object.entries(registry)) {
7878
const configInRegistry = registryItem.config
7979
const configInConfigFile = config[registryItemName]
@@ -82,7 +82,7 @@ export const syncConfigWithRegistry = async (client: v1.DockerDesktopClient, reg
8282
config[registryItemName][registryItemName] = mergedConfig
8383
}
8484
}
85-
const newConfigString = JSON.stringify({ config })
85+
const newConfigString = JSON.stringify(config)
8686
if (oldConfigString !== newConfigString) {
8787
console.log('Updating config with new registry.', 'oldConfigString', oldConfigString, 'newConfigString', newConfigString)
8888
await writeFileToPromptsVolume(client, JSON.stringify({ files: [{ path: 'config.yaml', content: stringify(config) }] }))

src/extension/ui/src/queries/useConfig.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,6 @@ export function useConfig(client: v1.DockerDesktopClient) {
2020
const queryClient = useQueryClient();
2121
const configRef = useRef<any>(null);
2222

23-
24-
// Sync config with registry - use the exact types from Registry.ts
25-
const syncConfigWithRegistryMutation = useMutation({
26-
mutationFn: async (registryItems: { [key: string]: { ref: string; config: any } }) => {
27-
try {
28-
if (!config) return { success: false };
29-
await syncConfigWithRegistry(client, registryItems, config);
30-
return { success: true };
31-
} catch (error) {
32-
console.error('Failed to sync config with registry:', error);
33-
throw error;
34-
}
35-
},
36-
onSuccess: async () => {
37-
// Refetch config to ensure UI is in sync after registry sync
38-
await refetchConfig();
39-
}
40-
});
41-
4223
const {
4324
data: config = undefined,
4425
refetch: refetchConfig,
@@ -121,6 +102,5 @@ export function useConfig(client: v1.DockerDesktopClient) {
121102
configLoading,
122103
tryLoadConfig,
123104
saveConfig,
124-
syncConfigWithRegistry: syncConfigWithRegistryMutation.mutateAsync
125105
};
126106
}

0 commit comments

Comments
 (0)