blob: 7a936343d109962593ae247521214b62dfe5924d [file] [log] [blame]
import { useNodes } from "@xyflow/react";
import { AppNode, useEnv, useProjectId } from "./lib/state";
import { generateDodoConfig } from "./lib/config";
import { useEffect, useMemo, useState } from "react";
import { Card, CardContent } from "./components/ui/card";
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]);
return (
<Card className="h-full flex flex-col">
<CardContent className="flex-1 min-h-0 p-4">
<div className="h-full p-4 bg-muted rounded-lg overflow-auto">
<JSONView
src={config as object}
theme="rjv-default"
name={false}
displayDataTypes={false}
enableClipboard={true}
style={{ fontFamily: "JetBrains Mono" }}
/>
</div>
</CardContent>
</Card>
);
}