import React, { useRef } from 'react'; import {RouteProp} from '@react-navigation/native'; import {StackNavigationProp} from '@react-navigation/stack'; import { View, Text, Alert, StatusBar, Image, TextInput, TouchableOpacity, StyleSheet } from 'react-native'; import {RootStackParams} from '../routes'; import LinearGradient from 'react-native-linear-gradient'; type LoginScreenRouteProp = RouteProp; type LoginScreenNavigationProp = StackNavigationProp; interface LoginProps { route: LoginScreenRouteProp; navigation: LoginScreenNavigationProp; } const Login = ({navigation}: LoginProps) => { const passwordInput = useRef(); const [data, setData] = React.useState({ username: '', password: '', isValidUser: true, isValidPassword: true, }) /* Updates the state of username. Also verifies the input of the Username field. */ const handleUsernameUpdate = (val:string) => { var validLength:boolean = val.trim().length >= 6 if (validLength) { setData({ ...data, username: val, isValidUser: true }) } else { setData({ ...data, username: val, isValidUser: false }) } } /* Updates the state of password. Also verifies the input of the Password field. */ const handlePasswordUpdate = (val:string) => { var validLength:boolean = val.trim().length >= 8 if (validLength) { setData({ ...data, password: val, isValidPassword: true }) } else { setData({ ...data, password: val, isValidPassword: false }) } } /* Handler for the Let's Start button or the Go button on the keyboard. */ const handleLogin = () => { if (data.isValidUser && data.isValidPassword) { Alert.alert(`My favorite Girl Scout Cookies are taggalongs! What are yours ${data.username}?`) navigation.navigate('Registration') } } return ( <> handleUsernameUpdate(user)} defaultValue={data.username} onSubmitEditing={() => {passwordInput.current.focus()}} blurOnSubmit={false} /> { data.isValidUser ? null : Username must be at least 6 characters long. } handlePasswordUpdate(pass)} defaultValue={data.password} onSubmitEditing={() => handleLogin()} ref={passwordInput} secureTextEntry={true} /> { data.isValidPassword ? null : Password must be at least 8 characters long. } Alert.alert("tagg! You're it!")}> Forgot password handleLogin()}> Let's Start! New to tagg? Alert.alert("I get the tagg flip it and tumble it.")}>Get started! // // Welcome to Tagg! Login page goes here. //