import Spacing from "@/components/_ShareComponent/Spacing"; import ViewWrapper from "@/components/_ShareComponent/ViewWrapper"; import ButtonCustom from "@/components/Button/ButtonCustom"; import { MainColor } from "@/constants/color-palet"; import { apiCheckCodeOtp, apiValidationCode } from "@/service/api"; import { GStyles } from "@/styles/global-styles"; import { router, useLocalSearchParams } from "expo-router"; import { useEffect, useState } from "react"; import { Text, View } from "react-native"; import { OtpInput } from "react-native-otp-entry"; import Toast from "react-native-toast-message"; export default function VerificationView() { const { kodeId, nomor } = useLocalSearchParams(); console.log("nomor", nomor); const [codeOtp, setCodeOtp] = useState(""); const [inputOtp, setInputOtp] = useState(""); const [userNumber, setUserNumber] = useState(""); const [loading, setLoading] = useState(false); useEffect(() => { onLoadCheckCodeOtp(kodeId as string); }, [kodeId]); async function onLoadCheckCodeOtp(kodeId: string) { const response = await apiCheckCodeOtp({ kodeId: kodeId }); console.log("response ", JSON.stringify(response, null, 2)); setCodeOtp(response.otp); setUserNumber(response.nomor); } const handleVerification = async () => { const codeOtpNumber = parseInt(codeOtp); const inputOtpNumber = parseInt(inputOtp); console.log("codeOtpNumber ", codeOtpNumber, typeof codeOtpNumber); console.log("inputOtpNumber ", inputOtpNumber, typeof inputOtpNumber); if (inputOtpNumber !== codeOtpNumber) { Toast.show({ type: "error", text1: "Gagal", text2: "Kode OTP tidak sesuai", }); return; } try { setLoading(true); const response = await apiValidationCode({ nomor: userNumber }); console.log("response ", JSON.stringify(response, null, 2)); if (response.success) { if (response.active) { if (response.roleId === "1") { router.replace("/(application)/(user)/home"); } else { router.replace("/(application)/admin/dashboard"); } } else { router.replace("/(application)/(user)/waiting-room"); } } else { router.replace(`/register?nomor=${userNumber}`); } } catch (error) { console.log("Error verification", error); } finally { setLoading(false); } }; return ( <> Verifikasi KOde OTP Masukan 4 digit kode otp Yang di kirim ke +{userNumber} setInputOtp(otp)} /> Tidak menerima kode ?{" "} Kirim Ulang handleVerification()} > Verifikasi ); }