Todos os componentes
MotionSwipe
Uma linha com ações reveladas ao deslizar e descarte opcional ao deslizar.
WebReact NativeGestos
Experimente
Uso mais curto
Row.jsx<MotionSwipe
endActions={<button onClick={() => archive(id)}>Archive</button>}
dismiss="end"
onDismiss={() => remove(id)}
>
<MessagePreview />
</MotionSwipe>;
O que ele resolve para você
- A linha segue arrastes horizontais, oferece resistência além das ações e se acomoda com a velocidade com que você solta.
- Com
dismiss, um deslize longo ou um arremesso tira a linha, recolhe a altura e então chama onDismiss(side). - A rolagem vertical continua funcionando, e só uma linha fica aberta.
- Tocar em uma linha aberta a fecha, e o foco do teclado em uma ação a revela.
Use para
- Arquivar ou apagar em uma caixa de entrada.
- Fixar uma conversa.
- Remover um item de uma lista.
Props
| Prop | Tipo | Padrão | Descrição |
|---|
children | ReactNode | | O conteúdo da linha. |
|---|
startActions | ReactNode | | Aparecem no começo da linha quando ela é arrastada para o fim. |
|---|
endActions | ReactNode | | Aparecem no fim da linha quando ela é arrastada para o começo. |
|---|
dismiss | 'start' | 'end' | 'both' | | Lados em que um deslize longo ou um arremesso remove a linha. |
|---|
onDismiss | (side) => void | | Roda depois que a linha saiu e foi recolhida; remova o item dos seus dados aqui. |
|---|
onOpenChange | (side | null) => void | | Roda com o lado aberto, ou null quando a linha fecha. |
|---|
disabled | boolean | false | Desliga o deslize. |
|---|
contentClassName | string | | Classe do conteúdo da linha; contentStyle define o estilo inline. |
|---|
transition | Transition | spring | Uma curva de tempo { duration, easing } ou uma mola { tempo: 'spring', spring }. As molas mantêm o embalo quando interrompidas. |
|---|
As outras props vão para o elemento renderizado, então className, style e handlers de eventos funcionam normalmente.