import PropTypes from 'prop-types' import { useSelector, useDispatch } from 'react-redux' import { useState } from 'react' import { useNavigate } from 'react-router-dom' // material-ui import { useTheme } from '@mui/material/styles' import { Avatar, Box, ButtonBase, Switch } from '@mui/material' import { styled } from '@mui/material/styles' // project imports import LogoSection from '../LogoSection' import ProfileSection from './ProfileSection' // assets import { IconMenu2 } from '@tabler/icons' // store import { SET_DARKMODE } from 'store/actions' // ==============================|| MAIN NAVBAR / HEADER ||============================== // const MaterialUISwitch = styled(Switch)(({ theme }) => ({ width: 62, height: 34, padding: 7, '& .MuiSwitch-switchBase': { margin: 1, padding: 0, transform: 'translateX(6px)', '&.Mui-checked': { color: '#fff', transform: 'translateX(22px)', '& .MuiSwitch-thumb:before': { backgroundImage: `url('data:image/svg+xml;utf8,')` }, '& + .MuiSwitch-track': { opacity: 1, backgroundColor: theme.palette.mode === 'dark' ? '#8796A5' : '#aab4be' } } }, '& .MuiSwitch-thumb': { backgroundColor: theme.palette.mode === 'dark' ? '#003892' : '#001e3c', width: 32, height: 32, '&:before': { content: "''", position: 'absolute', width: '100%', height: '100%', left: 0, top: 0, backgroundRepeat: 'no-repeat', backgroundPosition: 'center', backgroundImage: `url('data:image/svg+xml;utf8,')` } }, '& .MuiSwitch-track': { opacity: 1, backgroundColor: theme.palette.mode === 'dark' ? '#8796A5' : '#aab4be', borderRadius: 20 / 2 } })) const Header = ({ handleLeftDrawerToggle }) => { const theme = useTheme() const navigate = useNavigate() const customization = useSelector((state) => state.customization) const [isDark, setIsDark] = useState(customization.isDarkMode) const dispatch = useDispatch() const changeDarkMode = () => { dispatch({ type: SET_DARKMODE, isDarkMode: !isDark }) setIsDark((isDark) => !isDark) localStorage.setItem('isDarkMode', !isDark) } const signOutClicked = () => { localStorage.removeItem('username') localStorage.removeItem('password') navigate('/', { replace: true }) navigate(0) } return ( <> {/* logo & toggler button */} ) } Header.propTypes = { handleLeftDrawerToggle: PropTypes.func } export default Header