Skip to content

@sqlrooms/dropzone / FileDropzone

Variable: FileDropzone

const FileDropzone: FC<{ className?: string; isInvalid?: boolean; onDrop: (files) => Promise<void>; multiple?: boolean; acceptedFormats?: Record<string, string[]>; children?: React.ReactNode; }>

A customizable file dropzone component that handles file uploads through drag-and-drop or click interactions.

Example

tsx
// Basic usage
<FileDropzone
  onDrop={async (files) => {
    console.log('Dropped files:', files);
    // Handle file upload
  }}
/>

// With file type restrictions and single file upload
<FileDropzone
  multiple={false}
  acceptedFormats={{
    'text/csv': ['.csv'],
    'application/json': ['.json']
  }}
  onDrop={async (files) => {
    const file = files[0];
    // Handle single file upload
  }}
>
  <p>Custom dropzone content</p>
</FileDropzone>

Param

Component props

Param

Optional CSS class name for styling

Param

Optional flag to indicate validation error state

Param

Async callback function called when files are dropped or selected

Param

Optional flag to allow multiple file selection (default: true)

Param

Optional object defining accepted MIME types and their extensions

Param

Optional React nodes to render inside the dropzone