import { NodeType } from "@/lib/state";
import { ReactElement } from "react";
import { SiGithub, SiMongodb, SiPostgresql } from "react-icons/si";
import { GrServices } from "react-icons/gr";
import { GoFileDirectoryFill } from "react-icons/go";
import { TbWorldWww } from "react-icons/tb";
import { PiNetwork } from "react-icons/pi";
import { AiOutlineGlobal } from "react-icons/ai";

export function Icon(type: NodeType | undefined): ReactElement {
    switch (type) {
        case "app": return (<GrServices />);
        case "github": return (<SiGithub />);
        case "gateway-https": return (<TbWorldWww />);
        case "gateway-tcp": return (<PiNetwork />);
        case "mongodb": return (<SiMongodb />);
        case "postgresql": return (<SiPostgresql />);
        case "volume": return (<GoFileDirectoryFill />);
        case "network": return (<AiOutlineGlobal />);
        default: throw new Error(`MUST NOT REACH! ${type}`);
    }
}