Canvas: Do not render input on config tab
Change-Id: I5ebe939457610546ae59894958dbac153fcefcdf
diff --git a/apps/canvas/front/eslint.config.js b/apps/canvas/front/eslint.config.js
index b4af048..53e1e9b 100644
--- a/apps/canvas/front/eslint.config.js
+++ b/apps/canvas/front/eslint.config.js
@@ -23,6 +23,7 @@
},
rules: {
...reactHooks.configs.recommended.rules,
+ "react-hooks/exhaustive-deps": "error",
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
"@typescript-eslint/no-unused-vars": [
"error",
diff --git a/apps/canvas/front/src/Config.tsx b/apps/canvas/front/src/Config.tsx
index 9b410e1..137a467 100644
--- a/apps/canvas/front/src/Config.tsx
+++ b/apps/canvas/front/src/Config.tsx
@@ -1,13 +1,25 @@
import { useStateStore } from "./lib/state";
import { generateDodoConfig } from "./lib/config";
import JSONView from "@microlink/react-json-view";
+import { useMemo } from "react";
export function Config() {
const store = useStateStore();
+ const config = useMemo(
+ () => generateDodoConfig(store.projectId, store.nodes, store.env),
+ [store.projectId, store.nodes, store.env],
+ );
+ const cleaned = useMemo(() => {
+ if (config == null) {
+ return null;
+ }
+ const { input: _, ...rest } = config;
+ return rest;
+ }, [config]);
return (
<div className="h-full p-4 bg-muted overflow-auto text-xs">
<JSONView
- src={generateDodoConfig(store.projectId, store.nodes, store.env) as object}
+ src={cleaned as object}
theme="rjv-default"
name={false}
displayDataTypes={false}
diff --git a/apps/canvas/front/src/Gateways.tsx b/apps/canvas/front/src/Gateways.tsx
index a1fce28..92a30a2 100644
--- a/apps/canvas/front/src/Gateways.tsx
+++ b/apps/canvas/front/src/Gateways.tsx
@@ -17,11 +17,13 @@
return (
<ul>
{Array.from(groupedAccess.entries()).map(([name, access]) => (
- <li key={name}>
+ <>
{access.map((a) => (
- <Gateway g={a} />
+ <li key={name}>
+ <Gateway g={a} />
+ </li>
))}
- </li>
+ </>
))}
</ul>
);
diff --git a/apps/canvas/front/src/components/node-gateway-tcp.tsx b/apps/canvas/front/src/components/node-gateway-tcp.tsx
index c37f31b..4210d47 100644
--- a/apps/canvas/front/src/components/node-gateway-tcp.tsx
+++ b/apps/canvas/front/src/components/node-gateway-tcp.tsx
@@ -235,7 +235,7 @@
),
);
},
- [id, data, store],
+ [id, data, store, nodes],
);
return (
<>