blob: 6267ac3ba18914b5395079d12c5c4d8f5ccc7fe9 [file] [log] [blame]
import { NodeAppDetails } from "./node-app";
import { NodeGatewayHttpsDetails } from "./node-gateway-https";
import { NodeVolumeDetails } from "./node-volume";
import { NodePostgreSQLDetails } from "./node-postgresql";
import { NodeMongoDBDetails } from "./node-mongodb";
import { NodeGithubDetails } from "./node-github";
import { NodeGatewayTCPDetails } from "./node-gateway-tcp";
import { NodeDetailsProps } from "@/lib/types";
export function NodeDetails(props: NodeDetailsProps) {
return (
<div className="px-1 flex flex-col gap-2">
<NodeDetailsImpl {...props} />
</div>
);
}
function NodeDetailsImpl(props: NodeDetailsProps) {
const { node, ...rest } = props;
switch (node.type) {
case "app":
return <NodeAppDetails {...rest} node={node} />;
case "gateway-https":
return <NodeGatewayHttpsDetails {...rest} node={node} />;
case "gateway-tcp":
return <NodeGatewayTCPDetails {...rest} node={node} />;
case "volume":
return <NodeVolumeDetails {...rest} node={node} />;
case "postgresql":
return <NodePostgreSQLDetails {...rest} node={node} />;
case "mongodb":
return <NodeMongoDBDetails {...rest} node={node} />;
case "github":
return <NodeGithubDetails {...rest} node={node} />;
default:
return <>nooo</>;
}
}