From f8d8915c6061591cbce8cadafc88360c419df41d Mon Sep 17 00:00:00 2001 From: lingdocs <71590811+lingdocs@users.noreply.github.com> Date: Mon, 23 Aug 2021 10:26:11 +0400 Subject: [PATCH] useState wont store window for some reason --- website/src/screens/Account.tsx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/website/src/screens/Account.tsx b/website/src/screens/Account.tsx index ea73bc7..1f15591 100644 --- a/website/src/screens/Account.tsx +++ b/website/src/screens/Account.tsx @@ -16,18 +16,19 @@ const capitalize = (s: string): string => { return s.charAt(0).toUpperCase() + s.slice(1); } +let popupRef: Window | null = null; + const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUser: () => void }) => { const [showingUpgradePrompt, setShowingUpgradePrompt] = useState(false); const [upgradePassword, setUpgradePassword] = useState(""); const [upgradeError, setUpgradeError] = useState(""); const [waiting, setWaiting] = useState(false); - const [popup, setPopup] = useState(null); + // const [popup, setPopup] = useState(null); // const [publishingStatus, setPublishingStatus] = useState(undefined); useEffect(() => { setShowingUpgradePrompt(false); setUpgradeError(""); setWaiting(false); - setPopup(null); window.addEventListener("message", handleIncomingMessage); return () => { window.removeEventListener("message", handleIncomingMessage); @@ -35,7 +36,13 @@ const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUs // eslint-disable-next-line }, []); function handleIncomingMessage(event: MessageEvent) { - if (event.data === "signed in" && popup) popup.close(); + console.log("message incoming", event.data); + console.log("popup is", popupRef); + if (event.data === "signed in" && popupRef) { + console.log("will execute"); + loadUser(); + popupRef.close(); + } } function closeUpgrade() { setShowingUpgradePrompt(false); @@ -60,7 +67,7 @@ const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUs }); } function handleOpenSignup() { - setPopup(window.open("https://account.lingdocs.com")); + popupRef = window.open("https://account.lingdocs.com"); } // function handlePublish() { // setPublishingStatus("publishing");