import { useRouter } from 'expo-router'
import axios from 'axios'
import { Env } from '@env'
import { useEffect } from 'react'
import { SignupForm, FormType } from '@/components/auth/register-form'
import { useAuth } from '@/core/auth'
export default function RegisterScreen() {
const router = useRouter()
const { token, refreshUserSession, userSession, status } = useAuth()
useEffect(() => {
if (status === 'authenticated') {
if (userSession?.isRegistered) {
router.replace('/')
}
} else if (status === 'unauthenticated') {
router.replace('/login')
}
}, [status, userSession, router])
const handleSubmit = async (data: FormType) => {
try {
await axios.post(
`${Env.API_URL}/v1/user/register`,
{
email: data.email,
first_name: data.firstName,
last_name: data.lastName,
degree_program: data.degreeProgram,
school: data.school,
gender: data.gender,
},
{
headers: {
Authorization: `${token?.accessToken}`,
},
}
)
await refreshUserSession()
router.push('/')
} catch (error) {
console.log(error)
}
}
if (status === 'loading') {
return null
}
return <SignupForm onSubmit={handleSubmit} />
}