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