Skip to content

Commit 3663fd9

Browse files
author
colinmcneil
committed
Fix config save value
1 parent d545e91 commit 3663fd9

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { CatalogItemRichened } from "../../types/catalog";
44
import { useEffect, useState, useCallback, useMemo } from "react";
55
import * as JsonSchema from "json-schema-library";
66
import { getTemplateForItem, useConfig } from "../../hooks/useConfig";
7-
import { deepFlattenObject, deepSet } from "../../MergeDeep";
7+
import { buildObjectFromFlattenedObject, deepFlattenObject, deepSet } from "../../MergeDeep";
88
import { CheckOutlined, CloseOutlined } from "@mui/icons-material";
99
import { v1 } from "@docker/extension-api-client-types";
1010

@@ -87,7 +87,7 @@ const ConfigEditor = ({ catalogItem, client }: { catalogItem: CatalogItemRichene
8787
<CircularProgress size={24} />
8888
) : (
8989
<Stack direction="row" spacing={2}>
90-
<IconButton onClick={() => updateExistingConfig(catalogItem.name, localConfig)}
90+
<IconButton onClick={() => updateExistingConfig(catalogItem.name, buildObjectFromFlattenedObject(localConfig))}
9191
disabled={isSaving}
9292
>
9393
<CheckOutlined sx={{ color: 'success.main' }} />

src/extension/ui/src/hooks/useCatalog.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,20 @@ export function useCatalog(client: v1.DockerDesktopClient) {
3434
const enrichCatalogItem = (item: CatalogItemWithName): CatalogItemRichened => {
3535
const secretsWithAssignment = Secrets.getSecretsWithAssignment(item, secrets || []);
3636
const itemConfigValue = config?.[item.name] || {};
37-
const unConfigured = Boolean(item.config && Object.keys(itemConfigValue).length === 0);
37+
const neverOnceConfigured = Boolean(item.config && Object.keys(itemConfigValue).length === 0);
38+
const configTemplate = getTemplateForItem(item, itemConfigValue);
39+
const baseConfigTemplate = getTemplateForItem(item, {});
40+
const unConfigured = neverOnceConfigured || JSON.stringify(itemConfigValue) === JSON.stringify(baseConfigTemplate);
41+
if (item.name === 'atlassian') {
42+
console.log('atlassian', itemConfigValue, configTemplate, unConfigured)
43+
}
3844
const missingASecret = secretsWithAssignment.some((secret) => !secret.assigned);
3945
const enrichedItem: CatalogItemRichened = {
4046
...item,
4147
secrets: secretsWithAssignment,
4248
configValue: itemConfigValue,
4349
configSchema: item.config,
44-
configTemplate: getTemplateForItem(item, itemConfigValue),
50+
configTemplate,
4551
missingConfig: unConfigured,
4652
missingSecrets: missingASecret,
4753
registered: !!registryItems?.[item.name],

0 commit comments

Comments
 (0)