| 
                        123456789101112131415161718192021222324252627282930313233343536373839404142 | 
                        - import authorizationUtil from '@/utils/authorization-util';
 - import { message } from 'antd';
 - import { useEffect, useMemo, useState } from 'react';
 - import { useNavigate, useSearchParams } from 'umi';
 - 
 - export const useLoginWithGithub = () => {
 -   const [currentQueryParameters, setSearchParams] = useSearchParams();
 -   const error = currentQueryParameters.get('error');
 -   const newQueryParameters: URLSearchParams = useMemo(
 -     () => new URLSearchParams(currentQueryParameters.toString()),
 -     [currentQueryParameters],
 -   );
 -   const navigate = useNavigate();
 - 
 -   if (error) {
 -     message.error(error);
 -     navigate('/login');
 -     newQueryParameters.delete('error');
 -     setSearchParams(newQueryParameters);
 -     return;
 -   }
 - 
 -   const auth = currentQueryParameters.get('auth');
 - 
 -   if (auth) {
 -     authorizationUtil.setAuthorization(auth);
 -     newQueryParameters.delete('auth');
 -     setSearchParams(newQueryParameters);
 -   }
 -   return auth;
 - };
 - 
 - export const useAuth = () => {
 -   const auth = useLoginWithGithub();
 -   const [isLogin, setIsLogin] = useState<Nullable<boolean>>(null);
 - 
 -   useEffect(() => {
 -     setIsLogin(!!authorizationUtil.getAuthorization() || !!auth);
 -   }, [auth]);
 - 
 -   return { isLogin };
 - };
 
 
  |