"use client"; import React from "react"; import Image from "next/image"; import { X, CirclePlus } from "lucide-react"; import clsx from "clsx"; import { PropsUploadMultipleFile } from "./interface"; export default function UploadMultipleFile({ images = [], setImages, isDisableDelete = false, }: PropsUploadMultipleFile) { // 👉 upload files const handleFileChange = (event: React.ChangeEvent) => { const files = event.target.files; if (!files) return; const newImages = Array.from(files).map((file) => ({ url: URL.createObjectURL(file), file, })); setImages((prev: any) => [...prev, ...newImages]); }; // 👉 delete file const handleDelete = (index: number) => { setImages((prev: any) => { const target = prev[index]; if (target?.url) URL.revokeObjectURL(target.url); return prev.filter((_: any, i: number) => i !== index); }); }; return (
{/* LIST IMAGE */} {images?.length > 0 && (
{images.map((image, index) => (
image {/* DELETE BUTTON */} {isDisableDelete && !image?.file && image?.img ? null : (
handleDelete(index)} className="absolute top-[2px] right-[2px] w-[18px] h-[18px] bg-white rounded-sm flex items-center justify-center cursor-pointer transition active:scale-90" >
)}
))}
)} {/* UPLOAD BUTTON */}
{/* NOTE */}

Upload file

File không vượt quá 50MB

); }