import React, { useState, useEffect } from 'react'; import { View, Text } from 'react-native'; import { StatusBar } from 'expo-status-bar'; import { useFormik } from 'formik'; import { SafeAreaView } from 'react-native-safe-area-context'; import { router, Link } from 'expo-router'; import { PageHeader, StyledContainer, InnerContainer, StyledFormArea, Title, SubTitle, PageImage, StyledButton, ButtonText, MessageBox, Line, ExtraView, ExtraText, TextLinkContent, LoginTextInput } from './generalHelpers.jsx'; import { useWebSocketContext } from '../hooks/useWebSocketContext'; export default function Login() { const { isConnected, lastMessage, sendMessage } = useWebSocketContext(); const [hidePassword, setHidePassword] = useState(true); const [loginButtonDisabled, setLoginButtonDisabled] = useState(true); const [auth, setAuth] = useState(false); const formik = useFormik({ initialValues: { number: '', password: '' }, onSubmit: (values) => { values.number = values.number.replace(/[()\-\s]/g, ''); console.log(values); setAuth(true); }, }); const formValues = formik.values; useEffect(() => { if (formValues) { if (formValues.number.length === 14 && formValues.password) { setLoginButtonDisabled(false); } else { setLoginButtonDisabled(true); } } }, [formValues]) useEffect(() => { // Temp for Testing // if (!auth) { // setTimeout(() => { // router.navigate('./incidents'); // }, 1000); // } if (auth) { router.navigate('./incidents'); } }, [auth]) return ( Tones Account Login ... Login Don't have an account already? Register Temporary Area: Incidents Landing Socket connected: {isConnected ? '✅ Yes' : '❌ No'} ); }