| gio | 4b9b58a | 2025-05-12 11:46:08 +0000 | [diff] [blame] | 1 | import { useStateStore } from "./lib/state"; |
| gio | c31bf14 | 2025-06-16 07:48:20 +0000 | [diff] [blame^] | 2 | import { generateDodoConfig } from "../../config/src/config"; |
| gio | 880de16 | 2025-05-11 07:26:00 +0000 | [diff] [blame] | 3 | import JSONView from "@microlink/react-json-view"; |
| gio | 4037078 | 2025-05-19 11:04:52 +0000 | [diff] [blame] | 4 | import { useMemo } from "react"; |
| gio | 5f2f100 | 2025-03-20 18:38:48 +0400 | [diff] [blame] | 5 | |
| gio | da12043 | 2025-06-02 09:42:26 +0000 | [diff] [blame] | 6 | export function Config(): React.ReactNode { |
| gio | 4b9b58a | 2025-05-12 11:46:08 +0000 | [diff] [blame] | 7 | const store = useStateStore(); |
| gio | 4037078 | 2025-05-19 11:04:52 +0000 | [diff] [blame] | 8 | const config = useMemo( |
| 9 | () => generateDodoConfig(store.projectId, store.nodes, store.env), |
| 10 | [store.projectId, store.nodes, store.env], |
| 11 | ); |
| 12 | const cleaned = useMemo(() => { |
| 13 | if (config == null) { |
| 14 | return null; |
| 15 | } |
| 16 | const { input: _, ...rest } = config; |
| 17 | return rest; |
| 18 | }, [config]); |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 19 | return ( |
| gio | 8cadbc7 | 2025-05-16 07:51:02 +0000 | [diff] [blame] | 20 | <div className="h-full p-4 bg-muted overflow-auto text-xs"> |
| gio | bc47f9f | 2025-05-12 08:31:07 +0000 | [diff] [blame] | 21 | <JSONView |
| gio | 4037078 | 2025-05-19 11:04:52 +0000 | [diff] [blame] | 22 | src={cleaned as object} |
| gio | bc47f9f | 2025-05-12 08:31:07 +0000 | [diff] [blame] | 23 | theme="rjv-default" |
| 24 | name={false} |
| 25 | displayDataTypes={false} |
| 26 | enableClipboard={true} |
| 27 | style={{ fontFamily: "JetBrains Mono" }} |
| 28 | /> |
| 29 | </div> |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 30 | ); |
| 31 | } |