import Box from "@mui/material/Box"; import Breadcrumbs from "@mui/material/Breadcrumbs"; import Button from "@mui/material/Button"; import Card from "@mui/material/Card"; import Divider from "@mui/material/Divider"; import CardContent from "@mui/material/CardContent"; import Grid from "@mui/material/Grid2"; import Link from "@mui/material/Link"; import Typography from "@mui/material/Typography"; import { Home, Save } from "@mui/icons-material"; import useTitle from "../../hooks/useTitle"; import IconButton from "../../components/IconButton"; import { Back } from "iconsax-react"; import { useParams } from "react-router"; import Form from "./Form"; import { FormEvent, useEffect } from "react"; import FlashMessage from "../../components/FlashMessage"; import { useFishboneStore } from "../../stores/fishboneStore"; import { FishboneRequest } from "../../types/fishbone.types"; export default function FishboneCreateOrEdit() { useTitle("Fishbone"); const { pid } = useParams(); const { update, create, isLoading, find, clearFishbone } = useFishboneStore(); const IS_EDIT_PAGE = pid!!; const onSubmit = async (e: FormEvent) => { e.preventDefault(); const formData = new FormData(e.target as HTMLFormElement); const data = Object.fromEntries(formData.entries()) as unknown as FishboneRequest; if (IS_EDIT_PAGE) { await update(pid!!, data); } else { await create(data); } } useEffect(() => { if (pid!!) { (async () => { await find(pid!!); })() } else { (async () => { await clearFishbone() })() } }, []) return ( {IS_EDIT_PAGE ? `Edit Fishbone - ${pid}` : 'Create Fishbone'} Fishbone {IS_EDIT_PAGE ? pid : 'Create'} Fill the form
); }