added logout button
This commit is contained in:
parent
5603f86b87
commit
a317cd8bbc
3 changed files with 28 additions and 10 deletions
|
|
@ -1,4 +1,3 @@
|
||||||
import Header from "../app/Header";
|
|
||||||
import React, { PropsWithChildren, useState } from "react";
|
import React, { PropsWithChildren, useState } from "react";
|
||||||
import Router from "./Router";
|
import Router from "./Router";
|
||||||
|
|
||||||
|
|
@ -24,17 +23,11 @@ export default function NavigationContainer(props: Props) {
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
{/* <NotificationBanner /> */}
|
{/* <NotificationBanner /> */}
|
||||||
<Header
|
|
||||||
sideIsOpen={sideNavigatorOpen}
|
|
||||||
openSide={openSideNavigator}
|
|
||||||
toggleTheme={toggleTheme}
|
|
||||||
// teams={teams}
|
|
||||||
// setTeams={setTeams}
|
|
||||||
/>
|
|
||||||
<Router
|
<Router
|
||||||
open={sideNavigatorOpen}
|
open={sideNavigatorOpen}
|
||||||
onOpen={openSideNavigator}
|
onOpen={openSideNavigator}
|
||||||
onClose={closeSideMenu}
|
onClose={closeSideMenu}
|
||||||
|
toggleTheme={toggleTheme}
|
||||||
/>
|
/>
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,19 @@ import Users from "pages/Users";
|
||||||
import { useMobile } from "hooks";
|
import { useMobile } from "hooks";
|
||||||
import BottomNavigator from "./BottomNavigator";
|
import BottomNavigator from "./BottomNavigator";
|
||||||
import TeamPage from "pages/Team";
|
import TeamPage from "pages/Team";
|
||||||
|
import Header from "app/Header";
|
||||||
|
import Logout from "pages/Logout";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
||||||
open: boolean,
|
open: boolean,
|
||||||
onOpen: () => void;
|
onOpen: () => void;
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
|
toggleTheme: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function Router(props: Props) {
|
export default function Router(props: Props) {
|
||||||
|
|
||||||
const {open, onOpen, onClose} = props;
|
const {open, onOpen, onClose, toggleTheme } = props;
|
||||||
const { isAuthenticated, loginWithRedirect, isLoading } = useAuth0()
|
const { isAuthenticated, loginWithRedirect, isLoading } = useAuth0()
|
||||||
const isMobile = useMobile()
|
const isMobile = useMobile()
|
||||||
|
|
||||||
|
|
@ -48,6 +51,13 @@ export default function Router(props: Props) {
|
||||||
return (
|
return (
|
||||||
<Suspense fallback={<LoadingScreen />}>
|
<Suspense fallback={<LoadingScreen />}>
|
||||||
<BrowserRouter>
|
<BrowserRouter>
|
||||||
|
<Header
|
||||||
|
sideIsOpen={open}
|
||||||
|
openSide={onOpen}
|
||||||
|
toggleTheme={toggleTheme}
|
||||||
|
// teams={teams}
|
||||||
|
// setTeams={setTeams}
|
||||||
|
/>
|
||||||
<SideNavigator open={open} onOpen={onOpen} onClose={onClose} />
|
<SideNavigator open={open} onOpen={onOpen} onClose={onClose} />
|
||||||
<Routes>
|
<Routes>
|
||||||
|
|
||||||
|
|
@ -67,6 +77,7 @@ export default function Router(props: Props) {
|
||||||
{/* <Route path="blogs" element={<Blogs />} />
|
{/* <Route path="blogs" element={<Blogs />} />
|
||||||
<Route path="contact" element={<Contact />} />
|
<Route path="contact" element={<Contact />} />
|
||||||
<Route path="*" element={<NoPage />} /> */}
|
<Route path="*" element={<NoPage />} /> */}
|
||||||
|
<Route path="/logout" element={<Logout />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
{isMobile && <BottomNavigator openSide={onOpen} sideIsOpen={open} />}
|
{isMobile && <BottomNavigator openSide={onOpen} sideIsOpen={open} />}
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ import { Avatar, Box, Button, IconButton, ListItemIcon, ListItemText, Menu, Menu
|
||||||
import { useGlobalState } from "../providers/StateContainer";
|
import { useGlobalState } from "../providers/StateContainer";
|
||||||
import { getSecondaryColour, getSignatureAccentColour } from "../services/whiteLabel";
|
import { getSecondaryColour, getSignatureAccentColour } from "../services/whiteLabel";
|
||||||
import { makeStyles } from "@mui/styles";
|
import { makeStyles } from "@mui/styles";
|
||||||
import { LockOpen, Person, Lock, Settings, SupervisedUserCircle as TeamIcon } from "@mui/icons-material";
|
import { LockOpen, Person, Lock, Settings, SupervisedUserCircle as TeamIcon, ExitToApp } from "@mui/icons-material";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import UserTeamName from "./UserTeamName";
|
import UserTeamName from "./UserTeamName";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
@ -11,6 +11,7 @@ import { useAuth0 } from "@auth0/auth0-react";
|
||||||
import UserSettings from "./UserSettings";
|
import UserSettings from "./UserSettings";
|
||||||
import UserAvatar from "./UserAvatar";
|
import UserAvatar from "./UserAvatar";
|
||||||
import { purple } from "@mui/material/colors";
|
import { purple } from "@mui/material/colors";
|
||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
const useStyles = makeStyles((theme: Theme) => ({
|
const useStyles = makeStyles((theme: Theme) => ({
|
||||||
userAvatar: {
|
userAvatar: {
|
||||||
|
|
@ -89,6 +90,8 @@ export default function UserMenu(props: Props) {
|
||||||
// const allowedToCopyToken = user.allowedTo("copy-token");
|
// const allowedToCopyToken = user.allowedTo("copy-token");
|
||||||
const hasTeams = user.hasFeature ? user.hasFeature("teams") : false;
|
const hasTeams = user.hasFeature ? user.hasFeature("teams") : false;
|
||||||
|
|
||||||
|
const navigate = useNavigate()
|
||||||
|
|
||||||
const lockHover = () => {
|
const lockHover = () => {
|
||||||
setLockIsHovered(true);
|
setLockIsHovered(true);
|
||||||
};
|
};
|
||||||
|
|
@ -121,6 +124,11 @@ export default function UserMenu(props: Props) {
|
||||||
setUserSettingsIsOpen(false)
|
setUserSettingsIsOpen(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleLogout = () => {
|
||||||
|
closeUserMenu();
|
||||||
|
navigate("/logout");
|
||||||
|
};
|
||||||
|
|
||||||
const unauthenticatedUserMenu = () => {
|
const unauthenticatedUserMenu = () => {
|
||||||
return (
|
return (
|
||||||
<React.Fragment>
|
<React.Fragment>
|
||||||
|
|
@ -203,6 +211,12 @@ export default function UserMenu(props: Props) {
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<ListItemText primary="User Settings" />
|
<ListItemText primary="User Settings" />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
<MenuItem onClick={handleLogout} aria-label="Sign Out" dense>
|
||||||
|
<ListItemIcon>
|
||||||
|
<ExitToApp className={classes.red} />
|
||||||
|
</ListItemIcon>
|
||||||
|
<ListItemText primary="Sign Out" />
|
||||||
|
</MenuItem>
|
||||||
</Menu>
|
</Menu>
|
||||||
<UserSettings isOpen={userSettingsIsOpen} closeDialogCallback={closeUserSettingsDialog} />
|
<UserSettings isOpen={userSettingsIsOpen} closeDialogCallback={closeUserSettingsDialog} />
|
||||||
</>
|
</>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue