diff --git a/apps/canvas/front/src/Config.tsx b/apps/canvas/front/src/Config.tsx
index 23a3254..d2f1aed 100644
--- a/apps/canvas/front/src/Config.tsx
+++ b/apps/canvas/front/src/Config.tsx
@@ -4,20 +4,20 @@
 import { useEffect, useMemo, useState } from "react";
 
 export function Config() {
-    const env = useEnv();
-    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(nodes, env), [nodes, env]);
-    const configS = useMemo(() => JSON.stringify(config, undefined, 4), [config]);
-    return (
-        <div className="px-5">
-            <pre>{configS}</pre>
-        </div>
-    )
-}
\ No newline at end of file
+	const env = useEnv();
+	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(nodes, env), [nodes, env]);
+	const configS = useMemo(() => JSON.stringify(config, undefined, 4), [config]);
+	return (
+		<div className="px-5">
+			<pre>{configS}</pre>
+		</div>
+	);
+}
