import { useState, useEffect, useMemo } from "react"; import { Formik } from "formik"; import { XIcon } from "@heroicons/react/outline"; import General from "./General"; import Environment from "./Environment"; import Volumes from "./Volumes"; import Labels from "./Labels"; import type { CallbackFunction, IServiceNodeItem } from "../../../types"; import { getInitialValues, getFinalValues, validationSchema } from "./form-utils"; export interface IModalServiceProps { node: IServiceNodeItem; onHide: CallbackFunction; onUpdateEndpoint: CallbackFunction; } 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 ModalServiceEdit = (props: IModalServiceProps) => { const { node, onHide, onUpdateEndpoint } = props; const [openTab, setOpenTab] = useState("General"); const [selectedNode, setSelectedNode] = useState(); const handleUpdate = (values: any) => { onUpdateEndpoint(getFinalValues(values, selectedNode)); }; const initialValues = useMemo( () => getInitialValues(selectedNode), [selectedNode] ); const classNames = (...classes: string[]) => { return classes.filter(Boolean).join(" "); }; useEffect(() => { if (node) { setSelectedNode(node); } }, [node]); return (

Edit service

{selectedNode && ( {(formik) => ( <>
{openTab === "General" && } {openTab === "Environment" && } {openTab === "Volumes" && } {openTab === "Labels" && }
)}
)}
); }; export default ModalServiceEdit;