diff --git a/src/Components/SignupPage/SignupPage.js b/src/Components/SignupPage/SignupPage.js index 4228c5f..f50ab6c 100644 --- a/src/Components/SignupPage/SignupPage.js +++ b/src/Components/SignupPage/SignupPage.js @@ -11,6 +11,7 @@ import Toggle from "../../pageElements/Toggle"; import TextInput from "../../pageElements/TextInput"; import { v4 as uuidv4 } from "uuid"; import { collection, setDoc, doc } from "firebase/firestore"; +import LoadingSpinner from "../../pageElements/LoadingSpinner"; import { splitEvery } from "../../Utils/Array"; import { getFormDataDefaults, @@ -36,7 +37,7 @@ const SignupPage = () => { const navigate = useNavigate(); const [notice, setNotice] = useState(""); const fieldsChunkSize = 2; - const [isBusy, setIsBusy] = useState(false); + const [isBusy, setIsBusy] = useState(true); const [data, setData] = useState(getFormDataDefaults(signupFields)); const [paymentData, setPaymentData] = useState( getFormDataDefaults(paymentfields) @@ -214,7 +215,8 @@ const SignupPage = () => { try { const usersRef = collection(db, "users"); - await setDoc(doc(usersRef, fbAuthUid), userData); + const res = await setDoc(doc(usersRef, fbAuthUid), userData); + return res; } catch (error) { console.log(`Error saving new user to db: ${error}`); } @@ -337,8 +339,9 @@ const SignupPage = () => { } //const planType = determinePlan(isAnnual, activeRadioOption); - setIsBusy(true); + if (paymentDataValues && dataValues) { + setIsBusy(true); try { const data = await handleStripeAuthorization( paymentDataValues, @@ -364,7 +367,7 @@ const SignupPage = () => { const user = userCredential.user; dataValues = { ...dataValues, ...data }; - await saveUserData( + const res = await saveUserData( user.uid, dataValues, customerId, @@ -373,7 +376,10 @@ const SignupPage = () => { subscriptionPeriodEnd, subscriptionId ); - navigate("/dashboard"); + if (res) { + setIsBusy(false); + navigate("/dashboard"); + } } } catch (error) { setIsBusy(false); @@ -498,8 +504,9 @@ const SignupPage = () => { return (