| gio | 5f2f100 | 2025-03-20 18:38:48 +0400 | [diff] [blame] | 1 | import { NodeAppDetails } from "./node-app"; |
| 2 | import { NodeGatewayHttpsDetails } from "./node-gateway-https"; |
| 3 | import { AppNode } from "@/lib/state"; |
| 4 | import { NodeVolumeDetails } from "./node-volume"; |
| 5 | import { NodePostgreSQLDetails } from "./node-postgresql"; |
| 6 | import { NodeMongoDBDetails } from "./node-mongodb"; |
| 7 | import { NodeGithubDetails } from "./node-github"; |
| 8 | import { NodeGatewayTCPDetails } from "./node-gateway-tcp"; |
| 9 | |
| gio | 3ec9424 | 2025-05-16 12:46:57 +0000 | [diff] [blame] | 10 | type NodeDetailsProps = AppNode & { |
| 11 | disabled?: boolean; |
| 12 | }; |
| 13 | |
| 14 | export function NodeDetails(props: NodeDetailsProps) { |
| gio | fcefd7c | 2025-05-13 08:01:07 +0000 | [diff] [blame] | 15 | return ( |
| 16 | <div className="px-1 flex flex-col gap-2"> |
| 17 | <NodeDetailsImpl {...props} /> |
| 18 | </div> |
| 19 | ); |
| 20 | } |
| 21 | |
| gio | 3ec9424 | 2025-05-16 12:46:57 +0000 | [diff] [blame] | 22 | function NodeDetailsImpl(props: NodeDetailsProps) { |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 23 | switch (props.type) { |
| 24 | case "app": |
| gio | 3d0bf03 | 2025-06-05 06:57:26 +0000 | [diff] [blame^] | 25 | return <NodeAppDetails node={props} disabled={props.disabled} />; |
| gio | d002661 | 2025-05-08 13:00:36 +0000 | [diff] [blame] | 26 | case "gateway-https": |
| 27 | return <NodeGatewayHttpsDetails {...props} />; |
| 28 | case "gateway-tcp": |
| 29 | return <NodeGatewayTCPDetails {...props} />; |
| 30 | case "volume": |
| 31 | return <NodeVolumeDetails {...props} />; |
| 32 | case "postgresql": |
| 33 | return <NodePostgreSQLDetails {...props} />; |
| 34 | case "mongodb": |
| 35 | return <NodeMongoDBDetails {...props} />; |
| 36 | case "github": |
| 37 | return <NodeGithubDetails {...props} />; |
| 38 | default: |
| 39 | return <>nooo</>; |
| 40 | } |
| 41 | } |