'use client' import {zodResolver} from '@hookform/resolvers/zod' import fs from 'node:fs' import path from 'node:path' import {useCallback, useState} from 'react' import Dropzone from 'react-dropzone' import {useFieldArray, useForm} from 'react-hook-form' import {z} from 'zod' import {onProductCreateAction} from '@/actions/admin/product' import {createCategoryFormSchema} from '@/lib/schemas/admin/category' import {createProductFormSchema} from '@/lib/schemas/admin/product' import {cn, dump} from '@/lib/utils' import {ResourceMessages} from '@/types' import {Button} from '@/ui/button' import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage } from '@/ui/form' import {Input} from '@/ui/input' export default function CreateForm() { const [loading, setLoading] = useState(false) const [error, setError] = useState('') const [success, setSuccess] = useState('') const form = useForm>({ resolver: zodResolver(createProductFormSchema), mode: 'onBlur', defaultValues: { files: [] } }) const {fields, append} = useFieldArray({ name: 'files', control: form.control }) console.log(form.formState.errors) const onSubmit = async (values: z.infer) => { setLoading(true) onProductCreateAction(values).then((res: any) => { if (res?.error) { setError(res?.error) setSuccess('') setLoading(false) } else { setSuccess(res?.success as string) setError('') setLoading(false) } }) } return (
{fields.map((_, index) => { return (
{/*{form.getValues(`files.${index}.file.name`)}*/} {dump(form.getValues(`files.${index}`))}
( Файл Альт Ім'я )} /> ( Назва файлу )} />
) })}
( { acceptedFiles.map(acceptedFile => { console.log('acceptedFile', acceptedFile) return append({ file: acceptedFile, alt: '', title: '' }) }) }} multiple={true} maxSize={5000000} > {({getRootProps, getInputProps}) => (

Перетягніть тут, киньте кілька файлів або натисніть, щоб вибрати файли

)}
)} />
) // return ( //
//

// Створити галерею //

//
//
// //
//
// ) }