Pular para o conteúdo

Componentes

FileUpload

Zona rebaixada, anel tracejado, coruja vigiando. No arraste ela trabalha. Arquivo vira linha de papel com tamanho mono e X. Sem nuvem genérica.

betaEntradadesde 0.2.0@hiboupay/react

Exemplos#

CSV ou XLSX até 10 MB

Coruja vigia · arquivo vira papel

Mesa

  • folha.csv3 B

Celular · 390

  • folha.csv3 B

Enquanto sobe, a linha mostra o progresso

Importar#

tsx
import { FileUpload } from "@hiboupay/react";
import type { FileUploadProps } from "@hiboupay/react";

Quando usar#

Use quando

  • Importar planilha, comprovante, anexo único ou poucos arquivos.

Não use quando

  • Galeria de mídia. Campo de texto. Arrastar para mudar ordem (não é este componente).

Anatomia#

  1. 01Label
  2. 02Zona sunken com coruja idle/working
  3. 03Título Sora + dica
  4. 04Lista de arquivos em papel
  5. 05Linha de arquivo com Progress
  6. 06Mensagem de erro ou hint

Estados#

vaziaarraste (anel azul, coruja working)com arquivosenviandoerro (anel danger)disabled

API#

Props documentadas no registro. * indica obrigatória.

Propriedades
PropTipoPadrãoDescrição
files*File[]Arquivos aceitos.
onChange*(files: File[]) => voidNova lista.
acceptstringaccept nativo. Ex.: .csv,.xlsx.
multiplebooleanfalseVários arquivos.
maxSizenumberLimite em bytes. O que passa não entra e vira erro.
progressRecord<string, number>0–100 por arquivo. A chave é nome-tamanho.
renderFile(file: File) => ReactNodeSubstitui o miolo da linha. O remover continua.
emptyTitlestring"Solte o arquivo aqui"Título da zona vazia.
emptyDescriptionstring"ou clique para escolher"Apoio.
errorstringErro externo. Substitui o hint.

Acessibilidade#

Teclado

TabFoca o botão da zona.
EnterEspaçoAbre o seletor.

Leitor de tela

  1. —input file sr-only ligado ao label.
  2. —Remover tem aria-label "Remover {nome}".

Boas práticas#

Faça

  • accept e maxSize explícitos no hint.
  • Enquanto sobe, progress na linha do arquivo.
  • disabled esmaece só a zona, não o texto da lista.

Evite

  • Ícone de nuvem.
  • Aceitar qualquer tipo e recusar depois sem dizer o porquê.

Conteúdo#

  1. —hint: "CSV ou XLSX até 10 MB". emptyTitle fala o objeto: "Solte a planilha".

Tokens#

Os tokens que desenham este componente. Clique para ver valor, variável e classe.

Relacionados#