import { useState } from "react"; import { Formik } from "formik"; import * as yup from "yup"; import { XIcon } from "@heroicons/react/outline"; import General from "./General"; import Environment from "./Environment"; import Volumes from "./Volumes"; import Labels from "./Labels"; import { serviceConfigCanvasInitialValues } from "../../../utils"; import { CallbackFunction } from "../../../types"; interface IModalServiceProps { onHide: CallbackFunction; onAddEndpoint: CallbackFunction; } const ModalServiceCreate = (props: IModalServiceProps) => { const { onHide, onAddEndpoint } = props; const [openTab, setOpenTab] = useState("General"); const handleCreate = (values: any, formik: any) => { onAddEndpoint(values); formik.resetForm(); }; const validationSchema = yup.object({ canvasConfig: yup.object({ service_name: yup .string() .max(256, "service name should be 256 characters or less") .required("service name is required") }), serviceConfig: yup.object({ container_name: yup .string() .max(256, "container name should be 256 characters or less") .required("container name is required") }) }); const tabs = [ { name: "General", href: "#", current: true, hidden: false }, { name: "Environment", href: "#", current: false, hidden: false }, { name: "Volumes", href: "#", current: false, hidden: false }, { name: "Labels", href: "#", current: false, hidden: false } ]; const classNames = (...classes: string[]) => { return classes.filter(Boolean).join(" "); }; return (

Add service

{ handleCreate(values, formik); }} validationSchema={validationSchema} > {(formik) => ( <>
{openTab === "General" && } {openTab === "Environment" && } {openTab === "Volumes" && } {openTab === "Labels" && }
)}
); }; export default ModalServiceCreate;