import { Dispatch, useState } from 'react'; import { Outlet, Link, 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 { FaChevronRight } from "react-icons/fa"; import { FaChevronLeft } from "react-icons/fa"; import { UserType } from "../routes/index"; export type userData = { name: string }; 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 [sidebarOpen, setSidebarOpen] = useState(false); const [sidebarClosed, setSidebarClosed] = useState(false); const [sidebarInit, setSidebarInit] = useState(true); const handleSidebarOpen = () => { if(sidebarInit) { setSidebarOpen(true); setSidebarInit(false); } else { setSidebarOpen(!sidebarOpen); setSidebarClosed(!sidebarClosed); } }; const handleSidebarClickaway = () => { if(!sidebarInit) { setSidebarOpen(false); setSidebarClosed(true); } }; return( <>
{ prop.userData.name ? loggedin_element : loggedout_element }
Game Holster
}>Browse Games }>Upload Game
); }