Skip to main content

Pull To Action

Apresentação

O componente PullToAction é responsável por implementar a funcionalidade de "puxar para atualizar" (pull-to-refresh), permitindo que os usuários atualizem o conteúdo da tela puxando para baixo. Ele oferece uma experiência de usuário fluida com animações suaves e feedback visual.

⚠️ Importante: Este componente deve ser usado apenas uma vez por tela para evitar conflitos de gestos.

Quando usar

  • Para atualizar feeds de conteúdo
  • Para recarregar listas de dados
  • Para sincronizar informações em tempo real
  • Para atualizar dashboards
  • Para recarregar notificações
  • Para atualizar status de aplicações
  • Para sincronizar dados offline
  • Para atualizar conteúdo dinâmico

Forma básica de uso

import { PullToAction, View } from 'eitri-luminus';

// Pull to action com configuração completa
<PullToAction
onRefresh={async () => await atualizarDados()}
configuration={{
pullDownThreshold: 80,
dragContent: false,
iconInitialPosition: -50,
iconFinalPosition: 50,
showThreshold: 20,
maxPullRatio: 0.2,
animationDuration: 0.3,
spinDuration: 1,
iconSize: 24,
enableRotation: true,
enableFadeIn: true,
refreshingContent: <div>Atualizando...</div>
}}
>
<View height={300}>Conteúdo da página que será atualizado</View>
</PullToAction>

Propriedades

PropriedadeTipoDescrição
onRefresh() => Promise<void>Função assíncrona executada ao puxar
childrenReactNodeConteúdo renderizado dentro do componente
configurationPullToActionConfigConfigurações opcionais do componente
classNamestringClasses CSS adicionais
idstringIdentificador único do componente

PullToActionConfig

PropriedadeTipoDescrição
pullDownThresholdnumberLimite para ativar refresh (padrão: 70)
dragContentbooleanSe o conteúdo deve ser arrastado (padrão: false)
iconInitialPositionnumberPosição inicial do ícone (padrão: -50)
iconFinalPositionnumberPosição final do ícone (padrão: 50)
showThresholdnumberLimite para mostrar ícone (padrão: 20)
maxPullRationumberRazão máxima de puxada (padrão: 0.2)
animationDurationnumberDuração da animação (padrão: 0.3)
spinDurationnumberDuração da rotação (padrão: 1)
customIconReactNodeÍcone personalizado
iconSizenumberTamanho do ícone (padrão: 24)
refreshingContentReactNodeConteúdo exibido durante refresh
enableRotationbooleanHabilita rotação do ícone (padrão: true)
enableFadeInbooleanHabilita fade in (padrão: true)

Heranças

O componente PullToAction herda todas as propriedades comuns da biblioteca através da interface CommonProps, que inclui:

  • Propriedades de estilo (margin, padding, etc)
  • Propriedades de layout (flex, grid, etc)
  • Propriedades de posicionamento
  • Propriedades de acessibilidade
  • Propriedades de identificação (id, data-e)

Observações

  • ⚠️ Use apenas um componente PullToAction por tela para evitar conflitos
  • O componente detecta automaticamente gestos de toque
  • Suporta animações suaves e feedback visual
  • Funciona apenas em dispositivos touch
  • Previne comportamento padrão de overscroll
  • Suporta configurações personalizadas
  • É responsivo por padrão
  • Pode ser estilizado com classes do Tailwind
  • Suporta propriedades de layout flexíveis
  • Mantém a acessibilidade por padrão
  • Pode ser usado em qualquer contexto de layout
  • Suporta diferentes tipos de conteúdo
  • Pode ser combinado com outros componentes
  • Ideal para atualização de dados
  • Suporta estilos inline e classes CSS
  • Pode ser usado para diferentes tipos de refresh
  • Funciona bem com listas e feeds
  • Facilita a atualização de conteúdo
  • Suporta ícones personalizados
  • Oferece feedback visual durante o refresh