useState wont store window for some reason

This commit is contained in:
lingdocs 2021-08-23 10:26:11 +04:00
parent 084ffc3bfd
commit f8d8915c60
1 changed files with 11 additions and 4 deletions

View File

@ -16,18 +16,19 @@ const capitalize = (s: string): string => {
return s.charAt(0).toUpperCase() + s.slice(1); return s.charAt(0).toUpperCase() + s.slice(1);
} }
let popupRef: Window | null = null;
const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUser: () => void }) => { const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUser: () => void }) => {
const [showingUpgradePrompt, setShowingUpgradePrompt] = useState<boolean>(false); const [showingUpgradePrompt, setShowingUpgradePrompt] = useState<boolean>(false);
const [upgradePassword, setUpgradePassword] = useState<string>(""); const [upgradePassword, setUpgradePassword] = useState<string>("");
const [upgradeError, setUpgradeError] = useState<string>(""); const [upgradeError, setUpgradeError] = useState<string>("");
const [waiting, setWaiting] = useState<boolean>(false); const [waiting, setWaiting] = useState<boolean>(false);
const [popup, setPopup] = useState<WindowProxy | null>(null); // const [popup, setPopup] = useState<WindowProxy | null>(null);
// const [publishingStatus, setPublishingStatus] = useState<undefined | "publishing" | any>(undefined); // const [publishingStatus, setPublishingStatus] = useState<undefined | "publishing" | any>(undefined);
useEffect(() => { useEffect(() => {
setShowingUpgradePrompt(false); setShowingUpgradePrompt(false);
setUpgradeError(""); setUpgradeError("");
setWaiting(false); setWaiting(false);
setPopup(null);
window.addEventListener("message", handleIncomingMessage); window.addEventListener("message", handleIncomingMessage);
return () => { return () => {
window.removeEventListener("message", handleIncomingMessage); window.removeEventListener("message", handleIncomingMessage);
@ -35,7 +36,13 @@ const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUs
// eslint-disable-next-line // eslint-disable-next-line
}, []); }, []);
function handleIncomingMessage(event: MessageEvent<any>) { function handleIncomingMessage(event: MessageEvent<any>) {
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() { function closeUpgrade() {
setShowingUpgradePrompt(false); setShowingUpgradePrompt(false);
@ -60,7 +67,7 @@ const Account = ({ user, loadUser }: { user: AT.LingdocsUser | undefined, loadUs
}); });
} }
function handleOpenSignup() { function handleOpenSignup() {
setPopup(window.open("https://account.lingdocs.com")); popupRef = window.open("https://account.lingdocs.com");
} }
// function handlePublish() { // function handlePublish() {
// setPublishingStatus("publishing"); // setPublishingStatus("publishing");