Commit 0f3c12da authored by Lorenzo Trujillo Rojas's avatar Lorenzo Trujillo Rojas
Browse files

Se creó el hoom que realiza la lógica del signup

parent bfa8fe3a
Loading
Loading
Loading
Loading
+51 −0
Original line number Diff line number Diff line
import { useForm } from "react-hook-form"
import { useDataContext } from "../contexts/data_context";
import { useAuth } from "../contexts/auth_context";
import { router } from "expo-router";

interface SignUpForm {
    name: string;
    lastName: string;
    email: string;
    password: string;
    confirmPassword: string;
    dateOfBirth: string;
}

export const useSignUp = () => {
    const { control, setError, handleSubmit } = useForm<SignUpForm>();
    const { authRepository } = useDataContext();
    const { login } = useAuth();

    const validSubmit = async (data: SignUpForm) => {
        try {
            if (data.password !== data.confirmPassword) {
                setError("confirmPassword", { type: "manual", message: "Passwords don't match" });
                return;
            }
            const userToRegister = {
                name: data.name,
                lastName: data.lastName,
                email: data.email,
                password: data.password,
                confirmPassword: data.confirmPassword,
                birthdate: data.dateOfBirth
            }
            const { user, token } = await authRepository!.register(userToRegister);
            await login(user, token);
            router.replace("/(tabs)");
        } catch (error) {
            console.log(error);
        }
    }

    const invalidSubmit = (errors: any) => {
        console.log(errors);
    }

    const onSubmit = async () => {
        await handleSubmit(validSubmit, invalidSubmit)();
    }

    return { control, onSubmit };
}
 No newline at end of file