"use client"; import Stack from "@mui/material/Stack"; import Box from "@mui/material/Box"; import Card from "@mui/material/Card"; import CardContent from "@mui/material/CardContent"; import Grid from "@mui/material/Grid"; import TextField from "@mui/material/TextField"; import Typography from "@mui/material/Typography"; import { CreateGroupInputs } from "@/app/api/group/actions"; import { Controller, useFormContext } from "react-hook-form"; import { useTranslation } from "react-i18next"; import { useCallback, useEffect } from "react"; import { CreateStaffInputs } from "@/app/api/staff/actions"; import { Checkbox, FormControl, InputLabel, ListItemText, MenuItem, Select, } from "@mui/material"; import { comboItem } from "./CreateStaff"; import { DatePicker, LocalizationProvider } from "@mui/x-date-pickers"; import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; import { DemoItem } from "@mui/x-date-pickers/internals/demo"; import dayjs from "dayjs"; import { INPUT_DATE_FORMAT } from "@/app/utils/formatUtil"; interface Props { combos: comboItem; } const StaffInfo: React.FC = ({ combos }) => { const { t, i18n: { language }, } = useTranslation(); const { register, formState: { errors, defaultValues }, control, reset, resetField, setValue, getValues, clearErrors } = useFormContext(); const employType = [ { id: 1, label: "FT" }, { id: 2, label: "PT" }, ]; const skillIdNameMap = combos.skill.reduce<{ [id: number]: string }>( (acc, skill) => ({ ...acc, [skill.id]: skill.label }), {} ); console.log(skillIdNameMap) const resetStaff = useCallback(() => { console.log(defaultValues); if (defaultValues !== undefined) { // resetField("description"); } }, [defaultValues]); const joinDate = getValues("joinDate"); const departDate = getValues("departDate"); useEffect(() => { if(joinDate) clearErrors("joinDate") if(departDate) clearErrors("departDate") }, [joinDate, departDate]) return ( {t("Staff")} {t("Company")} ( )} /> {t("Team")} ( )} /> {t("Department")} ( )} /> {t("Grade")} ( )} /> {t("Skillset")} ( )} /> {t("Current Position")} ( )} /> {t("Salary Point")} ( )} /> {t("Employ Type")} ( )} /> { if (!date) return; setValue("joinDate", date.format(INPUT_DATE_FORMAT)); }} slotProps={{ textField: { // required: true, error: joinDate === "Invalid Date" || Boolean(errors.joinDate), // value: errors.joinDate?.message, }, }} /> {t("Join Position")} ( )} /> { if (!date) return; setValue("departDate", date.format(INPUT_DATE_FORMAT)); }} slotProps={{ textField: { error: departDate === "Invalid Date", // value: errors.departDate?.message, }, }} /> ); }; export default StaffInfo;