Skip to content

Commit 8c97948

Browse files
authored
Merge pull request #218 from docker/cm/make-offline-queries-offline
Make offline queries work offline
2 parents 28d8d84 + 3f11c8a commit 8c97948

File tree

6 files changed

+40
-24
lines changed

6 files changed

+40
-24
lines changed

src/extension/ui/src/components/tile/Modal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ const ConfigurationModal = ({
160160
src={catalogItem.icon}
161161
alt={catalogItem.name}
162162
sx={{
163-
width: 24,
164-
height: 24,
163+
width: 40,
164+
height: 40,
165165
borderRadius: 1,
166166
}}
167167
/>

src/extension/ui/src/queries/useCatalog.ts

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,11 @@ import { v1 } from "@docker/extension-api-client-types";
22
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
33
import { useCallback, useEffect, useMemo, useState } from "react";
44
import { parse, stringify } from "yaml";
5-
import {
6-
CATALOG_URL,
7-
REGISTRY_YAML
8-
} from "../Constants";
5+
import { CATALOG_URL, REGISTRY_YAML } from "../Constants";
96
import { writeToPromptsVolume } from "../FileUtils";
107
import { getRegistry, syncRegistryWithConfig } from "../Registry";
118
import Secrets from "../Secrets";
12-
import {
13-
CatalogItemRichened,
14-
CatalogItemWithName
15-
} from "../types/catalog";
9+
import { CatalogItemRichened, CatalogItemWithName } from "../types/catalog";
1610
import { getTemplateForItem, useConfig } from "./useConfig";
1711
import { useSecrets } from "./useSecrets";
1812

@@ -43,7 +37,7 @@ function useCatalog(client: v1.DockerDesktopClient) {
4337
Boolean(item.config) &&
4438
(neverOnceConfigured ||
4539
JSON.stringify(itemConfigValue) ===
46-
JSON.stringify(baseConfigTemplate));
40+
JSON.stringify(baseConfigTemplate));
4741

4842
const missingASecret = secretsWithAssignment.some(
4943
(secret) => !secret.assigned
@@ -152,6 +146,7 @@ function useRegistry(client: v1.DockerDesktopClient) {
152146
isLoading: registryLoading,
153147
} = useQuery({
154148
queryKey: ["registry"],
149+
networkMode: "always",
155150
queryFn: async () => {
156151
setCanRegister(false);
157152
try {
@@ -171,7 +166,7 @@ function useRegistry(client: v1.DockerDesktopClient) {
171166
setCanRegister(true);
172167
throw error;
173168
}
174-
}
169+
},
175170
});
176171

177172
useQuery({
@@ -214,7 +209,11 @@ function useRegistry(client: v1.DockerDesktopClient) {
214209
mutationFn: async (newRegistry: {
215210
[key: string]: { ref: string; config?: any };
216211
}) => {
217-
await writeToPromptsVolume(client, REGISTRY_YAML, stringify({ registry: newRegistry }));
212+
await writeToPromptsVolume(
213+
client,
214+
REGISTRY_YAML,
215+
stringify({ registry: newRegistry })
216+
);
218217

219218
return newRegistry;
220219
},
@@ -252,7 +251,11 @@ export function useCatalogOperations(client: v1.DockerDesktopClient) {
252251
[item.name]: { ref: item.ref },
253252
};
254253

255-
await writeToPromptsVolume(client, REGISTRY_YAML, stringify({ registry: newRegistry }));
254+
await writeToPromptsVolume(
255+
client,
256+
REGISTRY_YAML,
257+
stringify({ registry: newRegistry })
258+
);
256259
return { success: true, newRegistry };
257260
} catch (error) {
258261
client.desktopUI.toast.error(
@@ -281,7 +284,11 @@ export function useCatalogOperations(client: v1.DockerDesktopClient) {
281284
delete currentRegistry[item.name];
282285
}
283286

284-
await writeToPromptsVolume(client, REGISTRY_YAML, stringify({ registry: currentRegistry }));
287+
await writeToPromptsVolume(
288+
client,
289+
REGISTRY_YAML,
290+
stringify({ registry: currentRegistry })
291+
);
285292

286293
return { success: true, newRegistry: currentRegistry };
287294
} catch (error) {

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export function useConfig(client: v1.DockerDesktopClient) {
2828
isLoading: configLoading,
2929
} = useQuery({
3030
queryKey: ["config"],
31+
networkMode: "always",
3132
queryFn: async () => {
3233
try {
3334
const response = await getStoredConfig(client);
@@ -37,7 +38,7 @@ export function useConfig(client: v1.DockerDesktopClient) {
3738
client.desktopUI.toast.error("Failed to get stored config: " + error);
3839
throw error;
3940
}
40-
}
41+
},
4142
});
4243

4344
const saveConfigMutation = useMutation({
@@ -51,10 +52,15 @@ export function useConfig(client: v1.DockerDesktopClient) {
5152
try {
5253
const updatedConfig = {
5354
...((queryClient.getQueryData(["config"]) as Record<string, any>) ||
54-
{}), [itemName]: newConfig
55+
{}),
56+
[itemName]: newConfig,
5557
};
5658

57-
await writeToPromptsVolume(client, 'config.yaml', stringify(updatedConfig));
59+
await writeToPromptsVolume(
60+
client,
61+
"config.yaml",
62+
stringify(updatedConfig)
63+
);
5864

5965
const updatedConfigRef = JSON.parse(JSON.stringify(updatedConfig));
6066
return { itemName, updatedConfig: updatedConfigRef };

src/extension/ui/src/queries/useDDInfo.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const parseDDVersion = (ddVersion: string) => {
1616
const useDDInfo = (client: v1.DockerDesktopClient) => {
1717
const { data: ddInfo, isLoading: ddInfoLoading } = useQuery({
1818
queryKey: ["ddInfo"],
19+
networkMode: "always",
1920
queryFn: async () => {
2021
const result = await client.docker.cli.exec("version", [
2122
"--format",

src/extension/ui/src/queries/useMCPClient.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ export function useMCPClient(client: v1.DockerDesktopClient) {
2020
isFetching,
2121
} = useQuery({
2222
queryKey: ["mcpClientStates"],
23+
networkMode: "always",
2324
queryFn: async () => {
2425
const states = await getMCPClientStates(client);
2526

src/extension/ui/src/queries/useSecrets.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import { v1 } from '@docker/extension-api-client-types';
2-
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
3-
import Secrets from '../Secrets';
4-
import { Secret } from '../types';
1+
import { v1 } from "@docker/extension-api-client-types";
2+
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
3+
import Secrets from "../Secrets";
4+
import { Secret } from "../types";
55

66
export function useSecrets(client: v1.DockerDesktopClient) {
77
const queryClient = useQueryClient();
88

99
const { data, isLoading, error } = useQuery({
10-
queryKey: ['secrets'],
10+
queryKey: ["secrets"],
11+
networkMode: "always",
1112
queryFn: async () => {
1213
const secrets = await Secrets.getSecrets(client);
1314
return secrets;
@@ -22,7 +23,7 @@ export function useSecrets(client: v1.DockerDesktopClient) {
2223
},
2324
onSuccess: () => {
2425
// Invalidate and refetch secrets after mutation
25-
queryClient.invalidateQueries({ queryKey: ['secrets'] });
26+
queryClient.invalidateQueries({ queryKey: ["secrets"] });
2627
},
2728
});
2829
return { data, isLoading, error, mutate };

0 commit comments

Comments
 (0)