// import { fetchStaffEdit } from "@/app/api/staff"; import { useRouter, useSearchParams } from "next/navigation"; import { useCallback, useEffect, useState } from "react"; import CustomInputForm from "../CustomInputForm"; import { SubmitErrorHandler, SubmitHandler } from "react-hook-form"; import { CreateStaffInputs, saveStaff, testing } from "@/app/api/staff/actions"; import { Typography } from "@mui/material"; import { useTranslation } from "react-i18next"; import dayjs from "dayjs"; interface Options { id: any; label: string; [key: string]: any; } interface Field { // subtitle: string; id: string; label: string; type: string; value?: any; required?: boolean; options?: any[] | null; readOnly?: boolean; } interface formProps { Title?: string[]; fieldLists: Field[][]; } const EditStaffForm: React.FC = ({ Title, fieldLists }) => { const router = useRouter(); const { t } = useTranslation(); const searchParams = useSearchParams(); const idString = searchParams.get("id") const [serverError, setServerError] = useState(""); // make new inputs const onSubmit = useCallback>( async (data) => { try { let formatJoinDate = data.joinDate let formatDepartDate = data.departDate if (data.joinDate && /^\d{2}\/\d{2}\/\d{4}$/.test(data.joinDate)) { const formattedDate = dayjs(data.joinDate, 'MM/DD/YYYY').format('YYYY-MM-DD'); formatJoinDate = formattedDate; } if (data.departDate && data.departDate.length > 0 && /^\d{2}\/\d{2}\/\d{4}$/.test(data.departDate)) { const formattedDate = dayjs(data.departDate, 'MM/DD/YYYY').format('YYYY-MM-DD'); formatDepartDate = formattedDate; } if (idString) { const temp = { id: parseInt(idString), ...data, emergContactPhone: data.emergContactPhone.toString(), phone1: data.phone1.toString(), phone2: data.phone1.toString(), joinDate: formatJoinDate, departDate: formatDepartDate, } console.log(temp) setServerError(""); await saveStaff(temp); router.replace("/settings/staff"); } } catch (e) { setServerError(t("An error has occurred. Please try again later.")); } }, [router, t] ); const onSubmitError = useCallback>( (errors) => { console.log(errors); }, [] ); const handleCancel = () => { router.back(); }; return ( <> {serverError && ( {serverError} )} ); }; export default EditStaffForm;