import { useState } from "react"; import { useAuthContext } from "./useAuthContext"; export const useSignup = () => { const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(null); const { dispatch } = useAuthContext(); const signup = async ( email, password, userName, phoneNumber, gender, avatarImgURL ) => { setIsLoading(true); setError(null); console.log("useSignup : ", email); const response = await fetch( "https://ib-arneuralstyletransfers-production.up.railway.app/api/v1/users/signup", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ email, password, userName, phoneNumber, gender, avatarImgURL, }), } ); const json = await response.json(); if (!response.ok) { setIsLoading(false); setError(json.error); console.log("!response.ok"); } if (response.ok) { console.log("response.ok"); // save the user to local storage localStorage.setItem("user", JSON.stringify(json)); // update the auth context dispatch({ type: "LOGIN", payload: json }); // update loading state setIsLoading(false); } }; return { signup, isLoading, error }; };