From 029dd7e3f2f9ec12902db5922c6549fa0eea0aac Mon Sep 17 00:00:00 2001 From: Kuamr Shubham Date: Sun, 17 May 2020 15:10:04 +0530 Subject: [PATCH] Shubham | Add header layout --- src/components/layout/Header.tsx | 150 +++++++++++++++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 src/components/layout/Header.tsx diff --git a/src/components/layout/Header.tsx b/src/components/layout/Header.tsx new file mode 100644 index 0000000..381097f --- /dev/null +++ b/src/components/layout/Header.tsx @@ -0,0 +1,150 @@ +import * as React from 'react'; +import {createStyles, makeStyles, Theme} from '@material-ui/core/styles'; +import AppBar from '@material-ui/core/AppBar'; +import Toolbar from '@material-ui/core/Toolbar'; +import Typography from '@material-ui/core/Typography'; +import IconButton from '@material-ui/core/IconButton'; +import MenuIcon from '@material-ui/icons/Menu'; +import AccountCircle from '@material-ui/icons/AccountCircle'; +import Switch from '@material-ui/core/Switch'; +import FormControlLabel from '@material-ui/core/FormControlLabel'; +import FormGroup from '@material-ui/core/FormGroup'; +import MenuItem from '@material-ui/core/MenuItem'; +import Menu from '@material-ui/core/Menu'; +import {Button, ListItem} from '@material-ui/core'; +import {Link} from "react-router-dom"; +import {useOktaAuth} from "@okta/okta-react"; + + +const useStyles = makeStyles((theme: Theme) => createStyles({ + root: { + flexGrow: 1, + }, + menuButton: { + marginRight: theme.spacing(2), + }, + title: { + flexGrow: 1, + }, +})); + +export default function MenuAppBar(props:any) { + const classes = useStyles(); + const [auth, setAuth] = React.useState(true); + const [anchorEl, setAnchorEl] = React.useState(null); + const open = Boolean(anchorEl); + const [anchorEl1, setAnchorEl1] = React.useState(null); + const open1 = Boolean(anchorEl1); + const {authState, authService} = useOktaAuth(); + + const issuer= 'https://navi-2020.okta.com'; + const redirectUri= window.location.origin+'/logged_out'; + const handleChange = (event: React.ChangeEvent) => { + setAuth(event.target.checked); + }; + + const handleMenu = (event: React.MouseEvent) => { + setAnchorEl(event.currentTarget); + }; + + const handleClose = () => { + setAnchorEl(null); + setAnchorEl1(null); + }; + const handleLogin = () => { + authService.login('/dashboard'); + handleClose(); + } + const handleLogout = async () => { + const idToken = authState.idToken; + await authService.logout('/dashboard'); + window.location.href = `${issuer}/oauth2/v1/logout?id_token_hint=${idToken}`; + + } + + return ( +
+ + + + + {authState.isAuthenticated ? +
+ setAnchorEl1(e.currentTarget)} + aria-label="menu" + > + + + + + + Home + Show + Create + +
: null} + + + {props.name} + + {auth && ( +
+ + + + + {authState.isAuthenticated ?Profile:null} + {authState.isAuthenticated ?My account:null} + {authState.isAuthenticated ?Admin:null} + {authState.isAuthenticated ?Logout:null} + + {authState.isAuthenticated?null:Login} + + +
+ )} +
+
+
+ ); +}