From cfc3b62e777f3eb3fb1f2119d780ff86dfcc8047 Mon Sep 17 00:00:00 2001
From: balibabu <cike8899@users.noreply.github.com>
Date: Thu, 7 Mar 2024 14:39:34 +0800
Subject: [PATCH] feat: call useLoginWithGithub in useAuth (#107)

---
 web/src/hooks/authHook.ts | 24 +++++++++++++++---------
 web/src/layouts/index.tsx |  3 ---
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/web/src/hooks/authHook.ts b/web/src/hooks/authHook.ts
index 7461d6f..75b2d26 100644
--- a/web/src/hooks/authHook.ts
+++ b/web/src/hooks/authHook.ts
@@ -1,15 +1,8 @@
 import authorizationUtil from '@/utils/authorizationUtil';
-import { useMemo, useState } from 'react';
+import { message } from 'antd';
+import { useEffect, useMemo, useState } from 'react';
 import { useNavigate, useSearchParams } from 'umi';
 
-export const useAuth = () => {
-  const [isLogin, setIsLogin] = useState(
-    () => !!authorizationUtil.getAuthorization(),
-  );
-
-  return { isLogin };
-};
-
 export const useLoginWithGithub = () => {
   const [currentQueryParameters, setSearchParams] = useSearchParams();
   const error = currentQueryParameters.get('error');
@@ -20,6 +13,7 @@ export const useLoginWithGithub = () => {
   const navigate = useNavigate();
 
   if (error) {
+    message.error(error);
     navigate('/login');
     newQueryParameters.delete('error');
     setSearchParams(newQueryParameters);
@@ -33,4 +27,16 @@ export const useLoginWithGithub = () => {
     newQueryParameters.delete('auth');
     setSearchParams(newQueryParameters);
   }
+  return auth;
+};
+
+export const useAuth = () => {
+  const auth = useLoginWithGithub();
+  const [isLogin, setIsLogin] = useState(true);
+
+  useEffect(() => {
+    setIsLogin(!!auth || !!authorizationUtil.getAuthorization());
+  }, [auth]);
+
+  return { isLogin };
 };
diff --git a/web/src/layouts/index.tsx b/web/src/layouts/index.tsx
index f915e19..ded00fa 100644
--- a/web/src/layouts/index.tsx
+++ b/web/src/layouts/index.tsx
@@ -4,7 +4,6 @@ import { Outlet } from 'umi';
 import '../locales/config';
 import Header from './components/header';
 
-import { useLoginWithGithub } from '@/hooks/authHook';
 import styles from './index.less';
 
 const { Content } = Layout;
@@ -14,8 +13,6 @@ const App: React.FC = () => {
     token: { colorBgContainer, borderRadiusLG },
   } = theme.useToken();
 
-  useLoginWithGithub();
-
   return (
     <Layout className={styles.layout}>
       <Layout>
-- 
GitLab