'use client' import { yupResolver } from '@hookform/resolvers/yup' import { TextField, Button, UploadImage } from 'components' import Image from 'next/image' import { useEffect } from 'react' import { useForm } from 'react-hook-form' import { categorySchema } from 'utils' const CategoryForm = props => { //? Props const { mode, selectedCategory, createHandler, updateHandler, isLoading, parentLvl } = props //? Assets const defaultValues = { name: '', slug: '', image: '', colors: { start: '#000000', end: '#000000' }, } //? Form Hook const { handleSubmit, control, formState: { errors: formErrors }, reset, register, watch, getValues, setValue, } = useForm({ resolver: yupResolver(categorySchema), defaultValues, }) //? Re-Renders //* Set Category Details on Edit Mode useEffect(() => { if (selectedCategory && mode === 'edit') { const { image, name, slug, colors } = selectedCategory reset({ image, name, slug, colors }) } }, [selectedCategory]) //? Handlers const handleAddUploadedImageUrl = url => setValue('image', url) return (
{categorySchema.isValidSync(watch()) && (
{getValues('image') && ( category image )}
)} {((selectedCategory && selectedCategory.level <= 1) || parentLvl === 0) && (
)}
{mode === 'edit' ? ( ) : ( )}
) } export default CategoryForm