import React, { useState, useRef } from 'react'; import { Alert, StyleSheet, View, Text, ImageBackground, Dimensions, LayoutAnimation, UIManager, } from 'react-native'; import { Input, Button, Icon, InputProps } from 'react-native-elements'; const SCREEN_WIDTH = Dimensions.get('window').width; const SCREEN_HEIGHT = Dimensions.get('window').height; const BG_IMAGE = require('../../assets/images/bg_screen4.jpg'); // Enable LayoutAnimation on Android UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true); type TabSelectorProps = { selected: boolean; }; const TabSelector: React.FunctionComponent = ({ selected, }) => { return ( ); }; type LoginScreen3State = {}; type LoginScreen3Props = {}; const LoginScreen3: React.FunctionComponent = ( props: LoginScreen3Props ) => { const {} = props; const [isLoading, setLoading] = useState(false); const [email, setEmail] = useState(''); const [isEmailValid, setEmailValid] = useState(true); const [password, setPassword] = useState(''); const [isPasswordValid, setPasswordValid] = useState(true); const [confirmPassword, setConfirmPassword] = useState(''); const [isConfirmPasswordValid, setConfirmPasswordValid] = useState( true ); const [selectedCategory, setSelectedCategory] = useState(0); const emailInput = useRef(null); const passwordInput = useRef(null); const confirmationInput = useRef(null); const isLoginPage = selectedCategory === 0; const isSignUpPage = selectedCategory === 1; const selectCategory = (selectedCategoryIndex: number) => { LayoutAnimation.easeInEaseOut(); setLoading(false); setSelectedCategory(selectedCategoryIndex); }; const validateEmail = (testEmail: string) => { const re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; return re.test(testEmail); }; const login = () => { setLoading(true); // Simulate an API call setTimeout(() => { const isEmailValidFlag = validateEmail(email) || emailInput.current.shake(); const isPasswordValidFlag = password.length >= 8 || passwordInput.current.shake(); LayoutAnimation.easeInEaseOut(); setLoading(false); setEmailValid(isEmailValidFlag); setPasswordValid(isPasswordValidFlag); if (isEmailValidFlag && isPasswordValidFlag) { Alert.alert('🔥', 'Successfully Logged In'); } }, 1500); }; const signUp = () => { setLoading(true); // Simulate an API call setTimeout(() => { const isEmailValidFlag = validateEmail(email) || emailInput.current.shake(); const isPasswordValidFlag = password.length >= 8 || passwordInput.current.shake(); const isConfirmPasswordValidFlag = password === confirmPassword || confirmationInput.current.shake(); LayoutAnimation.easeInEaseOut(); setLoading(false); setEmailValid(validateEmail(email) || emailInput.current.shake()); setPasswordValid(password.length >= 8 || passwordInput.current.shake()); setConfirmPasswordValid( password === confirmPassword || confirmationInput.current.shake() ); if ( isEmailValidFlag && isPasswordValidFlag && isConfirmPasswordValidFlag ) { Alert.alert('🙏', 'Welcome'); } }, 1500); }; return ( BEAUX VOYAGES