PasswordInput
O componente PasswordInput
é uma variação especializada do TextInput
, pré-configurada para a entrada segura de senhas, incluindo um botão para alternar a visibilidade do texto.
Importação
import { PasswordInput } from '@platformbuilders/fluid-react-native';
Exemplo Básico
import React, { useState } from 'react';
import { View } from 'react-native';
import { PasswordInput } from '@platformbuilders/fluid-react-native';
const BasicPasswordInputExample = () => {
const [password, setPassword] = useState('');
return (
<View style={{ width: '90%' }}>
<PasswordInput
id="senha-basica"
accessibility="Campo de senha"
label="Senha"
placeholder="Digite sua senha"
value={password}
onChangeText={setPassword}
/>
</View>
);
};
Exemplos
Com Label Flutuante
Assim como o TextInput
, o PasswordInput
suporta a variante com label flutuante.
<PasswordInput
id="senha-flutuante"
accessibility="Campo de senha com label flutuante"
label="Senha"
value={passwordFloating}
onChangeText={setPasswordFloating}
isFloating // Ativa o modo flutuante
/>
Com Mensagem de Erro
Exiba erros de validação como em um TextInput
normal.
<PasswordInput
id="senha-erro"
accessibility="Campo de senha com erro"
label="Confirmar Senha"
value={confirmPassword}
onChangeText={setConfirmPassword}
error={password !== confirmPassword ? 'As senhas não coincidem' : ''}
/>
Com Estilo Borda (Bordered)
Também é possível usar o estilo com bordas.
<PasswordInput
id="senha-borda"
accessibility="Campo de senha com borda"
label="Senha"
value={passwordBordered}
onChangeText={setPasswordBordered}
borderedHeight={56}
borderedRadius={8}
/>
Funcionalidade Principal
- Entrada Segura: O texto digitado é automaticamente mascarado (
secureTextEntry={true}
). - Alternar Visibilidade: Um ícone de olho (👁️) é exibido à direita. Tocar neste ícone alterna entre mostrar e ocultar os caracteres digitados.
- Tipo de Conteúdo:
textContentType
é definido como'password'
para integração com gerenciadores de senha do sistema.
API
O PasswordInput
aceita todas as props do componente TextInput
e TextInputFloating
. As props secureTextEntry
, rightIconName
, iconTouchableEnabled
, onPressIcon
, onRightIconPress
, iconHitSlop
e textContentType
são gerenciadas internamente para fornecer a funcionalidade de senha.
Consulte a documentação do TextInput para a lista completa de props disponíveis.
Props Específicas (ou Gerenciadas Internamente):
secureTextEntry
: Sempretrue
inicialmente, mas seu estado interno muda ao tocar no ícone.rightIconName
: Alterna entre'eye'
e'eye-slash'
.iconTouchableEnabled
: Sempretrue
.onPressIcon
/onRightIconPress
: Usadas para alternar a visibilidade da senha.textContentType
: Definido como'password'
.
Acessibilidade
- Herda as boas práticas e funcionalidades de acessibilidade do
TextInput
. - O ícone de olho possui um
accessibilityLabel
que descreve sua ação (Exibir/Ocultar), embora idealmente o estado da entrada (se está mascarada ou não) devesse ser comunicado de forma mais direta por leitores de tela (uma limitação potencial a ser considerada).
Boas Práticas
- Label Claro: Use a prop
label
(ouborderedLabel
) para indicar claramente que o campo é para uma senha. - Mensagens de Erro: Forneça feedback claro sobre requisitos de senha (comprimento, caracteres especiais) ou erros de confirmação usando a prop
error
. - Não Desabilite o Ícone: Evite desabilitar o toque no ícone de olho, pois é uma funcionalidade esperada pelos usuários.