Skip to content

Commit 95c71fb

Browse files
author
colinmcneil
committed
Reduce cloned object counts
1 parent 2bd34dc commit 95c71fb

File tree

5 files changed

+14
-21
lines changed

5 files changed

+14
-21
lines changed

src/extension/ui/src/components/tabs/ToolCatalog.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Grid2 } from '@mui/material';
33
import Tile from '../tile/Index';
44
import { v1 } from "@docker/extension-api-client-types";
55
import { CATALOG_LAYOUT_SX } from '../../Constants';
6-
import { useCatalog } from '../../queries/useCatalog';
6+
import { useCatalogAll } from '../../queries/useCatalog';
77

88
interface ToolCatalogProps {
99
search: string;
@@ -12,7 +12,7 @@ interface ToolCatalogProps {
1212
}
1313

1414
const ToolCatalog: React.FC<ToolCatalogProps> = ({ search, client, showMine }) => {
15-
const { catalogItems } = useCatalog(client)
15+
const { catalogItems } = useCatalogAll(client)
1616
const filteredCatalogItems = catalogItems.filter(item => {
1717
const matchesSearch = item.name.toLowerCase().includes(search.toLowerCase());
1818
const hideBecauseItsNotMine = showMine && !item.registered;

src/extension/ui/src/components/tabs/YourTools.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { v1 } from '@docker/extension-api-client-types';
77
import { createDockerDesktopClient } from '@docker/extension-api-client';
88
import { CatalogItemRichened } from '../../types/catalog';
99
import { Secret } from '../../types/secrets';
10-
import { useCatalog } from '../../queries/useCatalog';
10+
import { useCatalogAll } from '../../queries/useCatalog';
1111
// Initialize the Docker Desktop client
1212
const client = createDockerDesktopClient();
1313

@@ -18,7 +18,7 @@ interface YourToolsProps {
1818
const YourTools: React.FC<YourToolsProps> = ({
1919
search,
2020
}) => {
21-
const { catalogItems } = useCatalog(client)
21+
const { catalogItems } = useCatalogAll(client)
2222
return (
2323
<Grid2 container spacing={1} sx={CATALOG_LAYOUT_SX}>
2424
{catalogItems.map((catalogItem) => {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import Center from "./Center";
99
import Bottom from "./Bottom";
1010
import { v1 } from "@docker/extension-api-client-types";
1111
import { useSecrets } from "../../queries/useSecrets";
12-
import { useCatalogOperations, useRegistry } from "../../queries/useCatalog";
12+
import { useCatalogAll, useCatalogOperations } from "../../queries/useCatalog";
1313
import { MCP_POLICY_NAME } from "../../Constants";
1414

1515
type TileProps = {
@@ -25,8 +25,8 @@ const Tile = ({ item, client }: TileProps) => {
2525
const [secretLoading, setSecretLoading] = useState(false)
2626
const [showConfigModal, setShowConfigModal] = useState(false)
2727
const { isLoading: secretsLoading, mutate: mutateSecret } = useSecrets(client)
28-
const { registryLoading } = useRegistry(client)
2928
const { registerCatalogItem, unregisterCatalogItem } = useCatalogOperations(client)
29+
const { registryLoading } = useCatalogAll(client)
3030

3131
if (registryLoading || secretsLoading) {
3232
return <>

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { v1 } from "@docker/extension-api-client-types";
66
import { ASSIGNED_SECRET_PLACEHOLDER, CATALOG_LAYOUT_SX, MCP_POLICY_NAME, UNASSIGNED_SECRET_PLACEHOLDER } from "../../Constants";
77
import ConfigEditor from "./ConfigEditor";
88
import { useSecrets } from "../../queries/useSecrets";
9-
import { useCatalogOperations, useRegistry } from "../../queries/useCatalog";
9+
import { useCatalogAll, useCatalogOperations } from "../../queries/useCatalog";
1010
import { useConfig } from "../../queries/useConfig";
1111

1212
interface TabPanelProps {
@@ -54,7 +54,7 @@ const ConfigurationModal = ({
5454
const theme = useTheme();
5555

5656
const { isLoading: secretsLoading, mutate: mutateSecret } = useSecrets(client)
57-
const { registryLoading } = useRegistry(client)
57+
const { registryLoading } = useCatalogAll(client)
5858
const { registerCatalogItem, unregisterCatalogItem } = useCatalogOperations(client)
5959
const { configLoading } = useConfig(client)
6060

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

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { getTemplateForItem } from './useConfig';
99
import { useState, useEffect } from 'react';
1010
import { escapeJSONForPlatformShell, tryRunImageSync } from '../FileUtils';
1111
import { useConfig } from './useConfig';
12-
import { useRequiredImages } from './useRequiredImages';
1312
import { useSecrets } from "./useSecrets";
1413

1514
// Storage keys for each query type
@@ -25,7 +24,7 @@ interface QueryContextWithMeta {
2524
};
2625
}
2726

28-
export function useCatalog(client: v1.DockerDesktopClient) {
27+
function useCatalog(client: v1.DockerDesktopClient) {
2928
const queryClient = useQueryClient();
3029
const { data: secrets, isLoading: secretsLoading } = useSecrets(client);
3130
const { registryItems, registryLoading } = useRegistry(client);
@@ -38,9 +37,7 @@ export function useCatalog(client: v1.DockerDesktopClient) {
3837
const configTemplate = getTemplateForItem(item, itemConfigValue);
3938
const baseConfigTemplate = getTemplateForItem(item, {});
4039
const unConfigured = Boolean(item.config) && (neverOnceConfigured || JSON.stringify(itemConfigValue) === JSON.stringify(baseConfigTemplate));
41-
if (item.name === 'elevenlabs') {
42-
console.log('elevenlabs', itemConfigValue, configTemplate, unConfigured)
43-
}
40+
4441
const missingASecret = secretsWithAssignment.some((secret) => !secret.assigned);
4542
const enrichedItem: CatalogItemRichened = {
4643
...item,
@@ -80,10 +77,7 @@ export function useCatalog(client: v1.DockerDesktopClient) {
8077
// without causing a full catalog reload
8178
useEffect(() => {
8279
if (catalogItems.length > 0 && !secretsLoading && !configLoading && !registryLoading) {
83-
const enrichedItems = catalogItems.map(item => ({
84-
...item,
85-
...enrichCatalogItem(item)
86-
}));
80+
const enrichedItems = catalogItems.map(enrichCatalogItem);
8781

8882
// Use the same reference if nothing changed to prevent unnecessary re-renders
8983
const hasChanges = JSON.stringify(enrichedItems) !== JSON.stringify(catalogItems);
@@ -123,7 +117,7 @@ export function useCatalog(client: v1.DockerDesktopClient) {
123117
};
124118
}
125119

126-
export function useRegistry(client: v1.DockerDesktopClient) {
120+
function useRegistry(client: v1.DockerDesktopClient) {
127121
const queryClient = useQueryClient();
128122
const [canRegister, setCanRegister] = useState<boolean>(false);
129123

@@ -210,9 +204,8 @@ export function useRegistry(client: v1.DockerDesktopClient) {
210204

211205
export function useCatalogOperations(client: v1.DockerDesktopClient) {
212206
const queryClient = useQueryClient();
213-
const { registryItems, canRegister } = useRegistry(client);
214-
const { config, syncConfigWithRegistry } = useConfig(client);
215-
const { loadAllImages } = useRequiredImages(client);
207+
const { registryItems } = useRegistry(client);
208+
const { config } = useConfig(client);
216209

217210
// Register catalog item mutation
218211
const registerItemMutation = useMutation({

0 commit comments

Comments
 (0)