feat: implement file upload functionality and enhance admin dashboard layout

This commit is contained in:
Ardeman
2025-03-10 12:21:08 +08:00
parent 8c2298ff61
commit 9a0c6c1f0b
9 changed files with 246 additions and 105 deletions
+10 -2
View File
@@ -1,6 +1,6 @@
import { Field, Label, Input as HeadlessInput } from '@headlessui/react'
import { CloudArrowUpIcon } from '@heroicons/react/20/solid'
import { type ComponentProps, type ReactNode } from 'react'
import { useEffect, type ComponentProps, type ReactNode } from 'react'
import {
get,
type FieldError,
@@ -42,15 +42,23 @@ export const InputFile = <TFormValues extends Record<string, unknown>>(
labelClassName,
...restProperties
} = properties
const { setIsUploadOpen } = useAdminContext()
const { setIsUploadOpen, uploadedFile } = useAdminContext()
const {
register,
formState: { errors },
setValue,
} = useRemixFormContext()
const error: FieldError = get(errors, name)
useEffect(() => {
if (uploadedFile) {
setValue('featured_image', uploadedFile)
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [uploadedFile])
return (
<Field
className={twMerge('relative', containerClassName)}