Skip to main content

Touchable

O componente Touchable é uma abstração do TouchableOpacity do React Native com suporte a feedback háptico e facilitando a implementação de acessibilidade.

Importação

import { Touchable } from '@platformbuilders/fluid-react-native';

Exemplo Básico

<Touchable 
accessibility="botao-salvar"
onPress={() => console.log('Pressionado')}
>
<Text>Pressione aqui</Text>
</Touchable>

Exemplos

Com feedback háptico personalizado

<Touchable 
accessibility="botao-compartilhar"
haptic="impactHeavy"
onPress={() => console.log('Compartilhar')}
>
<Icon name="share" />
<Text>Compartilhar</Text>
</Touchable>

Desabilitado

<Touchable 
accessibility="botao-enviar"
disabled
onPress={() => console.log('Enviar')}
>
<Text>Enviar</Text>
</Touchable>

Com ID para teste

<Touchable 
accessibility="botao-cancelar"
id="botao-cancelar"
testID="cancelar-teste-id"
onPress={() => console.log('Cancelar')}
>
<Text>Cancelar</Text>
</Touchable>

Com estilo personalizado

<Touchable 
accessibility="botao-acao"
onPress={() => console.log('Ação')}
style={{
backgroundColor: '#3366ff',
padding: 16,
borderRadius: 8,
alignItems: 'center',
justifyContent: 'center'
}}
>
<Text style={{ color: '#fff' }}>Executar Ação</Text>
</Touchable>

API

Props

PropTipoPadrãoDescrição
accessibilitystring-Identificador de acessibilidade (obrigatório)
idstring-ID opcional para o componente
testIDstring-ID para testes automatizados
accessibilityLabelstring-Rótulo de acessibilidade (usa accessibility quando não definido)
onPress(event: GestureResponderEvent) => void() => {}Callback chamado quando pressionado
hapticHapticFeedbackTypes'impactLight'Tipo do feedback háptico
disabledbooleanfalseDefine se o componente está desabilitado
styleStyleProp<ViewStyle>-Estilo do componente
childrenReactNode-Conteúdo do componente

Notas de uso

  • O componente Touchable é a base para todos os elementos interativos da biblioteca
  • Utiliza react-native-haptic-feedback para fornecer feedback tátil
  • Implementa automaticamente acessibilidade básica
  • Deve ser preferido em relação ao TouchableOpacity nativo para consistência
  • Valores válidos para haptic incluem: 'impactLight', 'impactMedium', 'impactHeavy', 'notificationSuccess', 'notificationWarning', 'notificationError'
  • O testID é gerado a partir da propriedade testID, id ou accessibility, nessa ordem de prioridade