import React from 'react';
interface FileObject {
url: string;
size?: number;
name: string;
}
interface FileUploadProps {
className?: string;
allowedFileTypes?: string;
multipleFilesAllowed?: boolean;
maxFileSize?: number;
hasFileSizeLimit?: boolean;
isPreview?: boolean;
minFileSize?: number;
files?: FileObject[];
onChange?: (files: FileObject[] | []) => void;
error?: string;
setError?: (error: string) => void;
setTouched?: (touched: boolean) => void;
}
interface FormikFileUploadProps extends FileUploadProps {
name: string;
}
/**
*
* The FileUpload component provides an interface for uploading files with
*
* drag-and-drop support, real-time previews, and comprehensive error handling. It
*
* allows users to configure file types, size limits, and whether multiple files
*
* can be uploaded simultaneously.
*
* @example
*
* import { useState } from "react";
* import { FileUpload } from "@bigbinary/neeto-molecules/FileUpload";
*
* const FileUploadComponent = () => {
* const [files, setFiles] = useState([]);
* const [error, setError] = useState("");
*
* const handleFileChange = updatedFiles => {
* // Perform any custom logic here
* setFiles(updatedFiles);
* };
*
* return (
*