"use client" import { JoDetail } from "@/app/api/jo" import { useRouter } from "next/navigation"; import { useTranslation } from "react-i18next"; import useUploadContext from "../UploadProvider/useUploadContext"; import { FormProvider, SubmitErrorHandler, SubmitHandler, useForm } from "react-hook-form"; import { useCallback, useState } from "react"; import { Button, Stack, Typography } from "@mui/material"; import StartIcon from "@mui/icons-material/Start"; import ArrowBackIcon from '@mui/icons-material/ArrowBack'; import { releaseJo } from "@/app/api/jo/actions"; import InfoCard from "./InfoCard"; import PickTable from "./PickTable"; type Props = { id?: number; defaultValues: Partial | undefined; } const JoSave: React.FC = ({ defaultValues, id, }) => { const { t } = useTranslation("jo") const router = useRouter(); const { setIsUploading } = useUploadContext(); const [serverError, setServerError] = useState(""); const formProps = useForm({ defaultValues: defaultValues }) const handleBack = useCallback(() => { router.replace(`/jo`) }, []) const handleRelease = useCallback(async () => { try { setIsUploading(true) if (id) { console.log(id) const response = await releaseJo({ id: id }) console.log(response.entity.status) if (response) { formProps.setValue("status", response.entity.status) console.log(formProps.watch("status")) } } } catch (e) { // backend error setServerError(t("An error has occurred. Please try again later.")); console.log(e); } finally { setIsUploading(false) } }, []) const onSubmit = useCallback>(async (data, event) => { console.log(data) }, [t]) const onSubmitError = useCallback>((errors) => { console.log(errors) }, [t]) return <> {serverError && ( {serverError} )} { formProps.watch("status").toLowerCase() === "planning" && ( )} } export default JoSave;