@@ -17,9 +17,10 @@ import MenuItem from "@mui/material/MenuItem";
1717import MenuIcon from "@mui/icons-material/Menu" ;
1818import LOGO from "../../src/assets/images/Logo.svg" ;
1919import axios from "axios" ;
20- import { useRecoilState } from "recoil" ;
20+ import { useRecoilState , useSetRecoilState } from "recoil" ;
2121import { avatar , id , name , isLogin } from "../recoil/authorize" ;
2222import styled from "styled-components" ;
23+
2324const ElevationScroll = ( props ) => {
2425 const { children, window } = props ;
2526 // Note that you normally won't need to set the window ref as useScrollTrigger
@@ -42,19 +43,44 @@ ElevationScroll.propTypes = {
4243 */
4344 window : PropTypes . func ,
4445} ;
46+
47+ async function checkTokenValid ( ) {
48+ const isTokenValid = await axios . get (
49+ `${ process . env . REACT_APP_SERVER_URL } /auth/checkToken` ,
50+ {
51+ validateStatus : ( status ) => {
52+ return status < 500 ;
53+ } ,
54+ withCredentials : true ,
55+ } ,
56+ ) ;
57+ return isTokenValid . status < 400 ;
58+ }
59+
4560export const Header = ( props ) => {
4661 const [ anchorElNav , setAnchorElNav ] = useState ( null ) ;
4762 const [ anchorElUser , setAnchorElUser ] = useState ( null ) ;
4863 const [ src , setSrc ] = useRecoilState ( avatar ) ;
4964 const [ userId , setUserId ] = useRecoilState ( id ) ;
5065 const [ userName , setUserName ] = useRecoilState ( name ) ;
51- const [ Login , setLogin ] = useRecoilState ( isLogin ) ;
52- React . useEffect ( ( ) => {
53- if ( Login ) {
66+ const setIsLogin = useSetRecoilState ( isLogin ) ;
67+
68+ const checkIsLogin = async ( ) => {
69+ const loggedIn = await checkTokenValid ( ) ;
70+ if ( loggedIn ) {
5471 setSrc ( localStorage . avatar ) ;
5572 setUserId ( localStorage . id ) ;
5673 setUserName ( localStorage . name ) ;
74+ } else {
75+ localStorage . removeItem ( "id" ) ;
76+ localStorage . removeItem ( "name" ) ;
77+ localStorage . removeItem ( "avatar" ) ;
5778 }
79+ setIsLogin ( loggedIn ) ;
80+ } ;
81+
82+ React . useEffect ( ( ) => {
83+ checkIsLogin ( ) ;
5884 } , [ ] ) ;
5985 const handleOpenNavMenu = ( event ) => {
6086 setAnchorElNav ( event . currentTarget ) ;
@@ -78,7 +104,7 @@ export const Header = (props) => {
78104 "" ,
79105 { withCredentials : true } ,
80106 ) ;
81- setLogin ( false ) ;
107+ setIsLogin ( false ) ;
82108 localStorage . setItem ( "id" , "guest" ) ;
83109 localStorage . setItem ( "name" , "guest" ) ;
84110 localStorage . setItem ( "avatar" , "" ) ;
@@ -162,7 +188,7 @@ export const Header = (props) => {
162188 < MenuItem
163189 key = { "Docs" }
164190 onClick = { ( ) =>
165- handleOpenNewTab ( "https://docs. open-set-go.com " )
191+ handleOpenNewTab ( "https://open-set-go.netlify.app/ " )
166192 }
167193 >
168194 < Typography textAlign = "center" > Docs</ Typography >
@@ -211,7 +237,9 @@ export const Header = (props) => {
211237 ) ) }
212238 < MenuItemWrapper
213239 key = "docs"
214- onClick = { ( ) => handleOpenNewTab ( "https://docs.open-set-go.com" ) }
240+ onClick = { ( ) =>
241+ handleOpenNewTab ( "https://open-set-go.netlify.app/" )
242+ }
215243 >
216244 Docs
217245 </ MenuItemWrapper >
0 commit comments