fix: github login

This commit is contained in:
Tristan Yang
2023-02-26 21:14:05 +08:00
parent f04a2f087d
commit 89004c28d1
2 changed files with 23 additions and 16 deletions
+9 -3
View File
@@ -18,9 +18,15 @@ const GithubLoginButton: FC<Props> = ({ type = "login", source = "webapp", clien
if (key == 'widget' && !!newValue) { if (key == 'widget' && !!newValue) {
console.log("github logged in"); console.log("github logged in");
localStorage.removeItem("widget"); localStorage.removeItem("widget");
const parentWindow = window.parent; if (window.location !== window.parent.location) {
if (parentWindow) { // in iframe
parentWindow.postMessage("RELOAD_WITH_OPEN", '*'); const parentWindow = window.parent;
if (parentWindow) {
parentWindow.postMessage("RELOAD_WITH_OPEN", '*');
}
} else {
// 刷新页面
location.reload();
} }
} }
}; };
+14 -13
View File
@@ -1,4 +1,4 @@
import { FC, useEffect, useState } from "react"; import { FC, Suspense, useEffect, useState } from "react";
import { GoogleLogin, GoogleOAuthProvider } from "@react-oauth/google"; import { GoogleLogin, GoogleOAuthProvider } from "@react-oauth/google";
import toast from "react-hot-toast"; import toast from "react-hot-toast";
import { KEY_LOCAL_MAGIC_TOKEN } from "../../app/config"; import { KEY_LOCAL_MAGIC_TOKEN } from "../../app/config";
@@ -39,7 +39,6 @@ const GoogleLoginInner: FC<Props> = ({ type = "login", loaded, loadError }) => {
toast.error("Something Error"); toast.error("Something Error");
break; break;
} }
return;
} }
}, [error]); }, [error]);
@@ -74,17 +73,19 @@ const GoogleLoginButton: FC<Props> = ({ type = "login", clientId }) => {
const [hasError, setHasError] = useState(false); const [hasError, setHasError] = useState(false);
if (!clientId) return null; if (!clientId) return null;
return ( return (
<GoogleOAuthProvider <Suspense fallback={<span>loading...</span>}>
onScriptLoadError={() => { <GoogleOAuthProvider
setHasError(true); onScriptLoadError={() => {
}} setHasError(true);
onScriptLoadSuccess={() => { }}
setScriptLoaded(true); onScriptLoadSuccess={() => {
}} setScriptLoaded(true);
clientId={clientId} }}
> clientId={clientId}
<GoogleLoginInner type={type} loaded={scriptLoaded} loadError={hasError} /> >
</GoogleOAuthProvider> <GoogleLoginInner type={type} loaded={scriptLoaded} loadError={hasError} />
</GoogleOAuthProvider>
</Suspense>
); );
}; };