import { useRef } from "react"; import { PlusIcon, EyeIcon } from "@heroicons/react/solid"; import { TrashIcon } from "@heroicons/react/solid"; import { FormattedMessage } from "react-intl"; export const toBase64 = (file: File) => new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = (error) => reject(error); }); export const getBase64FromUrl = async (url: string) => { const data = await fetch(url); const blob = await data.blob(); return new Promise((resolve) => { const reader = new FileReader(); reader.readAsDataURL(blob); reader.onloadend = () => { const base64data = reader.result; resolve(base64data); }; }); }; export const UploadImage = ({ values, onChange }: any) => { const uploadRef = useRef(null); const handleCustomUpload = (e: any) => { const file = e.target.files[0]; if (file) { toBase64(file).then((res: any) => { onChange([res, ...(values || [])]); }); } }; const addImage = (image: any) => { const images = values.filter((i: any) => i !== image); onChange([image, ...images]); }; const removeImage = (image: any) => { const images = values.filter((i: any) => i !== image); onChange(images); }; return (
{values?.length > 0 && (

{values?.map((image: any, i: number) => (
addImage(image)} >
removeImage(image)} >
{/*
addImage(image)} >
*/}
))}
)}
uploadRef?.current?.click()} >
); };