From 5c761fd9ff55ca1a114fe4fd64bd0daafcd86dca Mon Sep 17 00:00:00 2001 From: BFlat Date: Fri, 21 Jun 2024 23:32:55 +0700 Subject: [PATCH] race condition hack fix (#588) --- .../common/LoadingSpinner/LoadingSpinner.tsx | 6 ++- .../view/pages/beta_key/RedeemBetaKeyPage.tsx | 52 +++++++++++++++---- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/packages/fakeyou.com/src/components/common/LoadingSpinner/LoadingSpinner.tsx b/packages/fakeyou.com/src/components/common/LoadingSpinner/LoadingSpinner.tsx index f83b40ff55..d306bd722b 100644 --- a/packages/fakeyou.com/src/components/common/LoadingSpinner/LoadingSpinner.tsx +++ b/packages/fakeyou.com/src/components/common/LoadingSpinner/LoadingSpinner.tsx @@ -3,11 +3,13 @@ import React from "react"; interface LoadingSpinnerProps { className?: string; label?: string; + labelClassName?: string; } export default function LoadingSpinner({ className, label, + labelClassName, }: LoadingSpinnerProps) { return (
Loading...
- {label &&
{label}
} + {label && ( +
{label}
+ )} ); } diff --git a/packages/fakeyou.com/src/v2/view/pages/beta_key/RedeemBetaKeyPage.tsx b/packages/fakeyou.com/src/v2/view/pages/beta_key/RedeemBetaKeyPage.tsx index 1f7029bf35..d7c259162b 100644 --- a/packages/fakeyou.com/src/v2/view/pages/beta_key/RedeemBetaKeyPage.tsx +++ b/packages/fakeyou.com/src/v2/view/pages/beta_key/RedeemBetaKeyPage.tsx @@ -1,20 +1,30 @@ import { Button, Container, Label, Panel, TempInput } from "components/common"; -import React, { useState } from "react"; +import React, { useEffect, useState } from "react"; import "./BetaKey.scss"; -import { faKey, faPersonWalkingArrowLoopLeft } from "@fortawesome/pro-solid-svg-icons"; +import { + faKey, + faPersonWalkingArrowLoopLeft, +} from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { RedeemBetaKey } from "@storyteller/components/src/api/beta_key/RedeemBetaKey"; import { Link, useHistory, useParams } from "react-router-dom"; import { useSession } from "hooks"; +import LoadingSpinner from "components/common/LoadingSpinner"; export default function RedeemBetaKeyPage() { const { token: pageToken } = useParams<{ token: string }>(); - const [key, setKey] = useState(pageToken || ""); const [loading, setLoading] = useState(false); const [showAlert, setShowAlert] = useState(false); const history = useHistory(); - const { user, loggedIn } = useSession(); + const { user, loggedIn, sessionFetched } = useSession(); + + useEffect(() => { + if (sessionStorage.getItem("redirected") === "true") { + sessionStorage.removeItem("redirected"); + window.location.reload(); + } + }, [loggedIn]); const handleGoToSuccess = () => { history.push("/beta-key/redeem/success"); @@ -42,6 +52,20 @@ export default function RedeemBetaKeyPage() { } }; + if (!sessionFetched) { + return ( + +
+ +
+
+ ); + } + if (!loggedIn) { return ( @@ -62,15 +86,21 @@ export default function RedeemBetaKeyPage() {

@@ -136,7 +166,11 @@ export default function RedeemBetaKeyPage() { /> -

Back Home

+

+ + Back Home + +