import { FieldArrayWithId, useFieldArray } from "react-hook-form" import { FormImage } from "../../../../types/shared" import { NestedForm } from "../../../../utils/nested-form" import FileUploadField from "../../../atoms/file-upload-field" import TrashIcon from "../../../fundamentals/icons/trash-icon" import Actionables, { ActionType } from "../../../molecules/actionables" export type ThumbnailFormType = { images: FormImage[] } type Props = { form: NestedForm } const ThumbnailForm = ({ form }: Props) => { const { control, path } = form const { fields, remove, replace, append } = useFieldArray({ control: control, name: path("images"), }) const handleFilesChosen = (files: File[]) => { const toAppend = files.map((file) => ({ url: URL.createObjectURL(file), name: file.name, size: file.size, nativeFile: file, selected: false, })) if (files.length) { replace(toAppend) } else { append(toAppend) } } return (
{fields.length > 0 && (

Upload

{fields.map((field, index) => { return ( ) })}
)}
) } type ThumbnailProps = { image: FieldArrayWithId index: number remove: (index: number) => void } const Image = ({ image, index, remove }: ThumbnailProps) => { const actions: ActionType[] = [ { label: "Delete", onClick: () => remove(index), icon: , variant: "danger", }, ] return (
{image.name

{image.name}

{image.size ? `${(image.size / 1024).toFixed(2)} KB` : ""}

) } export default ThumbnailForm