diff --git a/apps/canvas/front/src/Config.tsx b/apps/canvas/front/src/Config.tsx
index 2b8b1f7..b92e99e 100644
--- a/apps/canvas/front/src/Config.tsx
+++ b/apps/canvas/front/src/Config.tsx
@@ -1,25 +1,13 @@
-import { useNodes } from "@xyflow/react";
-import { AppNode, useEnv, useProjectId } from "./lib/state";
+import { useStateStore } from "./lib/state";
 import { generateDodoConfig } from "./lib/config";
-import { useEffect, useMemo, useState } from "react";
 import JSONView from "@microlink/react-json-view";
 
 export function Config() {
-	const env = useEnv();
-	const projectId = useProjectId();
-	const [nodes, setNodes] = useState<AppNode[]>([]);
-	const n = useNodes<AppNode>();
-	useEffect(() => {
-		console.log(n);
-		if (n && n.length > 0) {
-			setNodes(n);
-		}
-	}, [n, setNodes]);
-	const config = useMemo(() => generateDodoConfig(projectId, nodes, env) || {}, [projectId, nodes, env]);
+	const store = useStateStore();
 	return (
 		<div className="h-full p-4 bg-muted rounded-lg overflow-auto">
 			<JSONView
-				src={config as object}
+				src={generateDodoConfig(store.projectId, store.nodes, store.env) as object}
 				theme="rjv-default"
 				name={false}
 				displayDataTypes={false}
