@@ -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
|
||||||
|
|||||||
@@ -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,21 +15,39 @@ const LoadingSpinner = (props) => {
|
|||||||
borderColor: "#a4ebf4",
|
borderColor: "#a4ebf4",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isMoon = loaderType === "MoonLoader" ? true : false;
|
||||||
return (
|
return (
|
||||||
<div className="spinner-outer-wrapper">
|
<div>
|
||||||
<div className="spinner-container">
|
{isMoon ? (
|
||||||
<div className="loading-text-box">
|
<div>
|
||||||
<p className="loading-graph">{message}</p>
|
<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>
|
||||||
<RingLoader
|
) : (
|
||||||
color={color}
|
<div className="spinner-outer-wrapper">
|
||||||
loading={loading}
|
<div className="spinner-container">
|
||||||
cssOverride={override}
|
<div className="loading-text-box">
|
||||||
size={150}
|
<p className="loading-graph">{message}</p>
|
||||||
aria-label="Loading Spinner"
|
</div>
|
||||||
data-testid="loader"
|
<RingLoader
|
||||||
/>
|
color={color}
|
||||||
</div>
|
loading={loading}
|
||||||
|
cssOverride={override}
|
||||||
|
size={150}
|
||||||
|
aria-label="Loading Spinner"
|
||||||
|
data-testid="loader"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user