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