import React, { useEffect,useState } from 'react' import { useForm } from 'react-hook-form'; import { z } from 'zod'; import { zodResolver } from '@hookform/resolvers/zod'; import { MasterRespository } from '../../repositories/MastersRepository'; import { clearApiCacheKey } from '../../slices/apiCacheSlice'; import { getCachedData,cacheData } from '../../slices/apiDataManager'; import showToast from '../../services/toastService'; const schema = z.object({ name: z.string().min(1, { message: "Category name is required" }), description: z.string().min(1, { message: "Description is required" }) .max(255, { message: "Description cannot exceed 255 characters" }), }); const CreateWorkCategory = ({onClose}) => { const[isLoading,setIsLoading] = useState(false) const { register, handleSubmit, formState: { errors },reset } = useForm({ resolver: zodResolver(schema), defaultValues: { name: "", description: "", }, }); const onSubmit = (data) => { setIsLoading(true) // const result = { // name: data.name, // description: data.description, // }; MasterRespository.createWorkCategory(data).then((resp)=>{ setIsLoading(false) resetForm() const cachedData = getCachedData("Work Category"); const updatedData = [...cachedData, resp?.data]; cacheData("Work Category", updatedData); showToast("Work Category Added successfully.", "success"); onClose() }).catch((error)=>{ showToast(error?.response?.data?.message, "error"); setIsLoading(false) }) }; const resetForm = () => { reset({ name: "", description: "" }); setDescriptionLength(0); } useEffect(()=>{ return ()=>resetForm() },[]) const [descriptionLength, setDescriptionLength] = useState(0); const maxDescriptionLength = 255; return (<>
{errors.name &&

{errors.name.message}

}
{maxDescriptionLength - descriptionLength} characters left
{errors.description && (

{errors.description.message}

)}
) } export default CreateWorkCategory;