Skip to content

Commit a62c705

Browse files
committed
Fix config toggle button
1 parent 5095a73 commit a62c705

File tree

2 files changed

+29
-20
lines changed

2 files changed

+29
-20
lines changed

src/extension/ui/src/components/CatalogGrid.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ export const CatalogGrid: React.FC<CatalogGridProps> = ({
217217
{tab === 0 && (
218218
<ToolCatalog
219219
registryItems={registryItems}
220+
config={config}
220221
search={search}
221222
catalogItems={catalogItems}
222223
client={client}
@@ -226,6 +227,7 @@ export const CatalogGrid: React.FC<CatalogGridProps> = ({
226227
unregister={unregisterCatalogItem}
227228
onSecretChange={loadSecrets}
228229
secrets={secrets}
230+
setConfiguringItem={setConfiguringItem}
229231
/>
230232
)}
231233
{tab === 1 && (

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

+27-20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import AddIcon from '@mui/icons-material/Add';
55
import { Ref } from '../../Refs';
66
import { v1 } from "@docker/extension-api-client-types";
77
import Secrets from '../../Secrets';
8+
import { config } from 'process';
89

910
interface ToolCatalogProps {
1011
search: string;
@@ -17,34 +18,40 @@ interface ToolCatalogProps {
1718
onSecretChange: (secret: { name: string, value: string }) => Promise<void>;
1819
secrets: Secrets.Secret[];
1920
registryItems: { [key: string]: { ref: string, config: any } };
21+
setConfiguringItem: (item: CatalogItemWithName) => void;
22+
config: { [key: string]: { [key: string]: any } };
2023
}
2124

22-
const ToolCatalog: React.FC<ToolCatalogProps> = ({ search, catalogItems, client, ddVersion, canRegister, register, unregister, onSecretChange, secrets, registryItems }) => {
25+
const ToolCatalog: React.FC<ToolCatalogProps> = ({ config, setConfiguringItem, search, catalogItems, client, ddVersion, canRegister, register, unregister, onSecretChange, secrets, registryItems }) => {
2326
const filteredCatalogItems = catalogItems.filter(item =>
2427
item.name.toLowerCase().includes(search.toLowerCase())
2528
);
2629

2730
return (
2831
<Grid2 container spacing={1} width='90vw' maxWidth={1000}>
29-
{filteredCatalogItems.map((catalogItem) => (
30-
<Grid2 size={{ xs: 12, sm: 6, md: 4 }} key={catalogItem.name}>
31-
<CatalogItemCard
32-
hasAllConfig={true}
33-
setConfiguringItem={() => { }}
34-
openUrl={() => {
35-
client.host.openExternal(Ref.fromRef(catalogItem.ref).toURL(true));
36-
}}
37-
item={catalogItem}
38-
ddVersion={ddVersion}
39-
canRegister={canRegister}
40-
registered={registryItems[catalogItem.name]?.ref !== undefined}
41-
register={register}
42-
unregister={unregister}
43-
onSecretChange={onSecretChange}
44-
secrets={secrets}
45-
/>
46-
</Grid2>
47-
))}
32+
{filteredCatalogItems.map((catalogItem) => {
33+
const expectedKeys = catalogItem.config?.map((c: any) => Object.keys(c.parameters)).flat() || [];
34+
const hasAllConfig = !catalogItem.config || expectedKeys?.every((c: any) => config[catalogItem.name]?.[c] !== undefined);
35+
return (
36+
<Grid2 size={{ xs: 12, sm: 6, md: 4 }} key={catalogItem.name}>
37+
<CatalogItemCard
38+
hasAllConfig={hasAllConfig}
39+
setConfiguringItem={setConfiguringItem}
40+
openUrl={() => {
41+
client.host.openExternal(Ref.fromRef(catalogItem.ref).toURL(true));
42+
}}
43+
item={catalogItem}
44+
ddVersion={ddVersion}
45+
canRegister={canRegister}
46+
registered={registryItems[catalogItem.name]?.ref !== undefined}
47+
register={register}
48+
unregister={unregister}
49+
onSecretChange={onSecretChange}
50+
secrets={secrets}
51+
/>
52+
</Grid2>
53+
)
54+
})}
4855
<Grid2 size={12}>
4956
<Card sx={{ height: '100%', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>
5057
<CardContent>

0 commit comments

Comments
 (0)