import { faArrowLeft } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-native-fontawesome"; import AsyncStorage from "@react-native-async-storage/async-storage"; import { useNavigation } from "@react-navigation/native"; import React, { useEffect, useState } from "react"; import { StyleSheet, Text, TextInput, TouchableOpacity, View, } from "react-native"; import { get_user_token, register_user, user_login } from "../../services/api/controllers/auth"; import { create_customer, get_customer_login_id, search_customer, } from "../../services/api/controllers/customers"; import { send_email_api } from "../../services/obananapayApi/user_api"; import OTPAuth from "./OTP"; const Register = () => { const navigation = useNavigation(); const [status, setstatus] = useState("register"); const [email, setemail] = useState(""); const [error, seterror] = useState(""); const [otpSent, setotpSent] = useState(""); const [otpCheck, setotpCheck] = useState(""); const [success, setsuccess] = useState(""); const [token, settoken] = useState(""); const [fName, setfName] = useState(""); const [lName, setlName] = useState(""); const [phone, setphone] = useState(""); const [uid, setuid] = useState(""); const [loading, setloading] = useState(""); const [emailDupe, setemailDupe] = useState(""); const [password, setpassword] = useState(""); useEffect(() => { /* ---------------Check for the user saved email--------------- */ AsyncStorage.getItem("AccessToken") .then((pass) => { console.log(pass); pass !== null ? navigation.navigate("Home") : null; }) .catch((error) => { console.log(error + "weeewwww"); }); }, []); const handleRegister = (e) => { /* ---------------Login Function --------------- */ send_email(); setstatus("otp"); }; const handleChange = (e) => { search_customer({ searchData: e, }) .then((result) => { // console.log(result.data); if (result.error) { seterror(result.error); } else { if (result.data?.results.length < 1 || undefined || [] || null) { setemail(e); setemailDupe(false); } else { setemailDupe(true); } // console.log("length on search " + result.data?.results.length); setloading(false); } }) .catch((error) => { // setError(error.message); console.log(error.message); }) .finally(() => { // setprodIsLoading(false); // Set loading to false when done loading }); }; const handleCreateCustomer = (e) => { create_customer({ first_name: fName, last_name: lName, user_email: email, phone_number: phone, role: "customer", login_id: uid, }) .then((result) => { // console.log(result.data); if (result.status === 201) { console.log("success create customer" + result.data); user_login({ username: email.replace(/\s/g, "").toLowerCase(), password: password, }) .then((result) => { if (result.status == 200) { // setuserEmail(result.data.user.email); // settoken(result.data.token); // setuid(result.data.user._id); // send_email(); // settoken(result.data.token); // settokenHere(result.data.token); AsyncStorage.setItem("AccessToken", result.data.token); AsyncStorage.setItem("email", email.replace(/\s/g, "").toLowerCase()); AsyncStorage.setItem("something", password); get_user_token({ token: result.data.token, }) .then((results) => { if (results.status == 200) { setuid(results.data.profile.userId); AsyncStorage.setItem("userId", results.data.profile.userId); get_customer_login_id({ id: results.data.profile.userId, }) .then((result1) => { // console.log(result1.data); if (result1.error) { seterror(result1.error); } else { AsyncStorage.setItem( "userData", JSON.stringify(result1.data) ); navigation.navigate("Home", { userLoggedin: true }); } }) .catch((error) => { // setError(error.message); console.log(error.message); }) .finally(() => { // setprodIsLoading(false); // Set loading to false when done loading }); } else { // seterror(results.message); console.log("login error" + results); } }) .catch((err) => { seterror(err); console.log(err); console.log(err + "failed to login"); }); // setauth(true); console.log("login success " + result.data.token); } else { seterror(result.message); console.log("login error" + result); } }) .catch((err) => { seterror(err); console.log(err); console.log(err + "failed to login"); }); navigation.navigate("Home"); } }) .catch((error) => { // setError(error.message); console.log(error.message); }) .finally(() => { // setprodIsLoading(false); // Set loading to false when done loading }); }; const send_email = () => { if (email) { const min = 100000; // Minimum 6-digit number const max = 999999; // Maximum 6-digit number const randomNumber = Math.floor(Math.random() * (max - min + 1)) + min; // const email2 = "kramblooda@gmail.com"; send_email_api({ email: email.replace(/\s/g, "").toLowerCase(), html: `
your OTP code to continue your obanana pay transaction is ${randomNumber}
`, }) .then((result) => { setotpSent(randomNumber); if (result.status == 200) { } else { seterror(result.message); } console.log(result); }) .catch((err) => { seterror(err); console.error(err); console.log(err + "failed to send email"); }); } else { // setotpError(true); } }; return (