FileUpload

Zona de upload com arrastar-e-soltar, pré-visualização de arquivos e validação.

Demonstração

Single file

Multiple images, max 2MB

Props

PropTipoPadrãoDescrição
acceptstringTipos de arquivo aceitos (ex: image/*)
multiplebooleanfalsePermite selecionar múltiplos arquivos
maxSizenumberTamanho máximo do arquivo em bytes
maxFilesnumberNúmero máximo de arquivos
onFilesChange(files: FileUploadFile[]) => voidCallback com lista atual de arquivos
disabledbooleanfalseDesabilita a zona de upload
labelstring'Drop files here or click to upload'Texto do label principal
hintstringTexto de dica (ex: tipos de arquivo)
errorstringMensagem de erro

Uso

import { FileUpload, FileUploadFile } from '@ghiberti85/ui'

const [files, setFiles] = useState<FileUploadFile[]>([])

// Basic
<FileUpload onFilesChange={setFiles} />

// Images only, max 5MB
<FileUpload
  accept="image/*"
  multiple
  maxSize={5_000_000}
  maxFiles={10}
  label="Upload images"
  hint="PNG, JPG, GIF up to 5MB"
  onFilesChange={setFiles}
/>

// Access file data
files.forEach(({ file, id, preview }) => {
  console.log(file.name, file.size)
})

Ver no Storybook

Abrir no Storybook
Ghiberti UI — Design System