Merge pull request #82 from kjannette/spin

Spin
This commit is contained in:
S Jannette
2024-02-03 01:01:40 -06:00
committed by GitHub
3 changed files with 51 additions and 21 deletions

View File

@@ -11,6 +11,7 @@ import Toggle from "../../pageElements/Toggle";
import TextInput from "../../pageElements/TextInput"; import TextInput from "../../pageElements/TextInput";
import { v4 as uuidv4 } from "uuid"; import { v4 as uuidv4 } from "uuid";
import { collection, setDoc, doc } from "firebase/firestore"; import { collection, setDoc, doc } from "firebase/firestore";
import LoadingSpinner from "../../pageElements/LoadingSpinner";
import { splitEvery } from "../../Utils/Array"; import { splitEvery } from "../../Utils/Array";
import { import {
getFormDataDefaults, getFormDataDefaults,
@@ -214,7 +215,8 @@ const SignupPage = () => {
try { try {
const usersRef = collection(db, "users"); const usersRef = collection(db, "users");
await setDoc(doc(usersRef, fbAuthUid), userData); const res = await setDoc(doc(usersRef, fbAuthUid), userData);
return res;
} catch (error) { } catch (error) {
console.log(`Error saving new user to db: ${error}`); console.log(`Error saving new user to db: ${error}`);
} }
@@ -337,8 +339,11 @@ const SignupPage = () => {
} }
//const planType = determinePlan(isAnnual, activeRadioOption); //const planType = determinePlan(isAnnual, activeRadioOption);
setIsBusy(true);
if (paymentDataValues && dataValues) { if (paymentDataValues && dataValues) {
setShowPaymentModal(false);
window.scrollTo({ top: 0, behavior: "smooth" });
setIsBusy(true);
try { try {
const data = await handleStripeAuthorization( const data = await handleStripeAuthorization(
paymentDataValues, paymentDataValues,
@@ -364,7 +369,7 @@ const SignupPage = () => {
const user = userCredential.user; const user = userCredential.user;
dataValues = { ...dataValues, ...data }; dataValues = { ...dataValues, ...data };
await saveUserData( const res = await saveUserData(
user.uid, user.uid,
dataValues, dataValues,
customerId, customerId,
@@ -373,6 +378,8 @@ const SignupPage = () => {
subscriptionPeriodEnd, subscriptionPeriodEnd,
subscriptionId subscriptionId
); );
console.log("res", res);
setIsBusy(false);
navigate("/dashboard"); navigate("/dashboard");
} }
} catch (error) { } catch (error) {
@@ -498,8 +505,9 @@ const SignupPage = () => {
return ( return (
<div className="signup-super-container"> <div className="signup-super-container">
{!isUpgrade ? signupForm : <></>} {isBusy ? <LoadingSpinner message={""} loaderType="MoonLoader" /> : null}
{showSelectPlan ? ( {!isUpgrade && !isBusy ? signupForm : <></>}
{showSelectPlan && !isBusy ? (
<div className="select-plan-container"> <div className="select-plan-container">
<div className="select-sub-left"> <div className="select-sub-left">
<div className="select-plan-header"> <div className="select-plan-header">
@@ -535,7 +543,7 @@ const SignupPage = () => {
</div> </div>
))} ))}
</div> </div>
{showAddAccount ? ( {showAddAccount && !isBusy ? (
<div className="show-addaccount-wrapper"> <div className="show-addaccount-wrapper">
<div className="show-addaccount-container"> <div className="show-addaccount-container">
<div className="plan-header-right-lower"> <div className="plan-header-right-lower">
@@ -594,7 +602,7 @@ const SignupPage = () => {
<></> <></>
)} )}
<div className="signup-button-box"> <div className="signup-button-box">
{!showAddAccount ? ( {!showAddAccount && !isBusy ? (
<> <>
{showAddAccountBtn ? ( {showAddAccountBtn ? (
<Button <Button

View File

@@ -1,9 +1,10 @@
import { useState } from "react"; import { useState } from "react";
import RingLoader from "react-spinners/RingLoader"; import RingLoader from "react-spinners/RingLoader";
import MoonLoader from "react-spinners/MoonLoader";
import "../styles/spinner.scss"; import "../styles/spinner.scss";
const LoadingSpinner = (props) => { const LoadingSpinner = (props) => {
const { message } = props; const { message, loaderType } = props;
let [loading, setLoading] = useState(true); let [loading, setLoading] = useState(true);
const color = "#31e0f7"; const color = "#31e0f7";
@@ -14,7 +15,23 @@ const LoadingSpinner = (props) => {
borderColor: "#a4ebf4", borderColor: "#a4ebf4",
}; };
const isMoon = loaderType === "MoonLoader" ? true : false;
return ( return (
<div>
{isMoon ? (
<div>
<div className="spinner-outer-wrapper moon">
<MoonLoader
color={color}
loading={loading}
cssOverride={override}
size={150}
aria-label="Loading Spinner"
data-testid="loader"
/>
</div>
</div>
) : (
<div className="spinner-outer-wrapper"> <div className="spinner-outer-wrapper">
<div className="spinner-container"> <div className="spinner-container">
<div className="loading-text-box"> <div className="loading-text-box">
@@ -30,6 +47,8 @@ const LoadingSpinner = (props) => {
/> />
</div> </div>
</div> </div>
)}
</div>
); );
}; };

View File

@@ -4,6 +4,9 @@
align-items: center; align-items: center;
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
&.moon {
margin-top: 70px;
}
} }
.spinner-container { .spinner-container {