AuthScreen
Este componente React-Native, chamado de AuthScreen, representa a tela de autenticação do aplicativo.
Oferece funcionalidades de login e cadastro, interagindo com um banco de dados Firebase para gerenciar usuários.
Funcionalidades Principais
Autenticação e Navegação:
- Utiliza o contexto
useLoadingpara exibir indicadores de carregamento durante operações assíncronas. - Utiliza o
AsyncStoragepara persistir a informação de autenticação (isAuth).
- Utiliza o contexto
Gerenciamento de Usuários:
- Utiliza a classe
Storagepara interagir com o Firebase e obter informações sobre usuários. - Ao montar o componente, verifica se o usuário já está autenticado, redirecionando-o para a tela inicial (
Splash) se necessário.
- Utiliza a classe
Estados e Campos de Entrada:
- Utiliza estados para controlar diferentes aspectos do componente, incluindo informações de usuários, mensagens de erro, visibilidade de senha, entre outros.
- Campos de entrada controlados por estados para email e senhas.
Manipulação de Senhas:
- Oferece funcionalidade para alternar a visibilidade da senha durante a entrada de texto, utilizando ícones visuais (
eye).
- Oferece funcionalidade para alternar a visibilidade da senha durante a entrada de texto, utilizando ícones visuais (
Login e Cadastro:
- Função
handleSignUppara cadastrar novos usuários no Firebase, verificando se o email já existe. - Função
handleSignInpara autenticar usuários, exibindo mensagens de erro caso o email ou senha não sejam válidos.
- Função
Limpeza de Campos:
- Função
clearFieldspara limpar os campos do formulário, utilizada após operações de login ou cadastro.
- Função
Feedback ao Usuário:
- Exibe mensagens de erro em caso de problemas durante o login ou cadastro.
- Oferece link para recuperação de senha em caso de erro no login.
Estilo e Layout:
- Utiliza estilos específicos para proporcionar uma experiência visual agradável ao usuário.
Componentes Utilizados
React,useState,useEffectpara gerenciar o estado e o ciclo de vida.- Componentes de interface como
View,Text,TextInput,Button,TouchableOpacity,Image. - Ícones fornecidos pelos pacotes
@expo/vector-icons(Foundation, Ionicons).
Observações
- O componente pode ser integrado a um fluxo de autenticação mais amplo em um aplicativo, proporcionando funcionalidades essenciais de login e cadastro.
Lembre-se de ajustar qualquer configuração específica do seu projeto, como a configuração do Firebase, para que o componente funcione corretamente no contexto do seu aplicativo.
