From 101863b2f3c9cce50d1c15bfa5e4dc6971409b35 Mon Sep 17 00:00:00 2001 From: realtradam Date: Fri, 28 Jun 2024 20:12:25 -0400 Subject: add logout button --- react-frontend/src/components/Layout.tsx | 25 ++++++++++++++++++------- react-frontend/src/routes/index.tsx | 6 ++++-- 2 files changed, 22 insertions(+), 9 deletions(-) (limited to 'react-frontend') diff --git a/react-frontend/src/components/Layout.tsx b/react-frontend/src/components/Layout.tsx index 979dacb..db31b55 100644 --- a/react-frontend/src/components/Layout.tsx +++ b/react-frontend/src/components/Layout.tsx @@ -1,25 +1,36 @@ -import { Outlet } from "react-router-dom"; +import { Dispatch } from 'react'; +import { Outlet, useNavigate } from "react-router-dom"; import { IconButton, Button, ButtonGroup } from 'rsuite'; import { Icon } from '@rsuite/icons'; import { FaUser } from "react-icons/fa6"; import { FaGamepad } from "react-icons/fa"; import { GiCowboyHolster } from "react-icons/gi"; import { GrAdd } from "react-icons/gr"; +import { UserType } from "../routes/index"; -export type userData = { userData: { name: string } }; +export type userData = { name: string }; - //{ userData.name ?
Logged in as:
{userData.name}
: Login with Github } - -export default function Layout({userData} : userData) +export default function Layout(prop : { userData: userData, setUserData : Dispatch }) { + const navigate = useNavigate(); + const loginLink = () => { window.open(`https://github.com/login/oauth/authorize?client_id=${import.meta.env.VITE_GITHUB_CLIENTID}`); }; + const logoutLink = () => { + fetch(`${import.meta.env.VITE_API_TITLE}/api/v1/auth/logout`, { credentials: "include" }).then(function() { + prop.setUserData({name: ""}) + navigate('/'); + }); + }; + const loggedout_element = }>Log In; - const loggedin_element = ; + const loggedin_element = ; + + console.log(prop); return( <> @@ -27,7 +38,7 @@ export default function Layout({userData} : userData)
- { userData.name ? loggedin_element : loggedout_element } + { prop.userData.name ? loggedin_element : loggedout_element }
diff --git a/react-frontend/src/routes/index.tsx b/react-frontend/src/routes/index.tsx index e22bcc4..6876ce5 100644 --- a/react-frontend/src/routes/index.tsx +++ b/react-frontend/src/routes/index.tsx @@ -4,10 +4,12 @@ import Home from "../pages/Home"; import Layout from "../components/Layout"; import CloseWindow from "../pages/CloseWindow"; +export type UserType = { name: string }; + export default function Index() { - const [userData, setUserData] = useState({ name: '' }); + const [userData, setUserData] = useState({ name: '' }); useEffect(() => { const update_login_status = () => { //localStorage.removeItem("logged in trigger"); @@ -30,7 +32,7 @@ export default function Index() return (<> - }> + }> } /> } /> -- cgit v1.2.3