blob: 2b8b1f7479998dfa0ccfcc06f947bd4c5f294c34 [file] [log] [blame]
gio5f2f1002025-03-20 18:38:48 +04001import { useNodes } from "@xyflow/react";
gio7d813702025-05-08 18:29:52 +00002import { AppNode, useEnv, useProjectId } from "./lib/state";
gio5f2f1002025-03-20 18:38:48 +04003import { generateDodoConfig } from "./lib/config";
4import { useEffect, useMemo, useState } from "react";
gio880de162025-05-11 07:26:00 +00005import JSONView from "@microlink/react-json-view";
gio5f2f1002025-03-20 18:38:48 +04006
7export function Config() {
giod0026612025-05-08 13:00:36 +00008 const env = useEnv();
gio7d813702025-05-08 18:29:52 +00009 const projectId = useProjectId();
giod0026612025-05-08 13:00:36 +000010 const [nodes, setNodes] = useState<AppNode[]>([]);
11 const n = useNodes<AppNode>();
12 useEffect(() => {
13 console.log(n);
14 if (n && n.length > 0) {
15 setNodes(n);
16 }
17 }, [n, setNodes]);
gio880de162025-05-11 07:26:00 +000018 const config = useMemo(() => generateDodoConfig(projectId, nodes, env) || {}, [projectId, nodes, env]);
giod0026612025-05-08 13:00:36 +000019 return (
giobc47f9f2025-05-12 08:31:07 +000020 <div className="h-full p-4 bg-muted rounded-lg overflow-auto">
21 <JSONView
22 src={config as object}
23 theme="rjv-default"
24 name={false}
25 displayDataTypes={false}
26 enableClipboard={true}
27 style={{ fontFamily: "JetBrains Mono" }}
28 />
29 </div>
giod0026612025-05-08 13:00:36 +000030 );
31}