"use client"; import Check from "@mui/icons-material/Check"; import Close from "@mui/icons-material/Close"; import Button from "@mui/material/Button"; import Stack from "@mui/material/Stack"; import Tab from "@mui/material/Tab"; import Tabs, { TabsProps } from "@mui/material/Tabs"; import { useRouter } from "next/navigation"; import React, { useCallback, useState } from "react"; import { useTranslation } from "react-i18next"; import { Task, TaskTemplate } from "@/app/api/tasks"; import { FieldErrors, FormProvider, SubmitErrorHandler, SubmitHandler, useForm, } from "react-hook-form"; import { CreateDepartmentInputs, saveDepartment } from "@/app/api/departments/actions"; import { Error } from "@mui/icons-material"; import { ProjectCategory } from "@/app/api/projects"; import { Typography } from "@mui/material"; import DepartmentDetails from "./DepartmentDetails"; import { DepartmentResult } from "@/app/api/departments"; interface Props { isEdit: Boolean; department?: CreateDepartmentInputs; depCodes: string[] } const CreateDepartment: React.FC = ({ isEdit, department, depCodes, }) => { const [serverError, setServerError] = useState(""); const { t } = useTranslation(); const router = useRouter(); console.log(department) console.log(depCodes) const handleCancel = () => { router.back(); }; const onSubmit = useCallback>( async (data) => { try { console.log(data); let haveError = false if (depCodes.includes(data.code.toLowerCase().trim())) { formProps.setError("code", { message: t("Duplicated code."), type: "required" }) haveError = true } if (haveError) { return } console.log("passed") setServerError(""); // console.log(JSON.stringify(data)); await saveDepartment(data) router.replace("/settings/department"); } catch (e) { setServerError(t("An error has occurred. Please try again later.")); } }, [router, t], ); const onSubmitError = useCallback>( (errors) => { console.log(errors) }, [], ); const formProps = useForm({ defaultValues: { id: department?.id, code: department?.code, name: department?.name, description: department?.description, }, }); const errors = formProps.formState.errors; return ( { } ); }; export default CreateDepartment;