Refactor layout component styles
parent
cbe251d776
commit
ed94bb9510
|
@ -1,15 +1,14 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import { makeStyles } from "@mui/material/styles";
|
import { useTheme } from "@mui/material/styles";
|
||||||
import AppRoutes from "./AppRoutes";
|
import AppRoutes from "./AppRoutes";
|
||||||
import TopBar from "./TopBar";
|
import TopBar from "./TopBar";
|
||||||
import Sidebar from "./Sidebar";
|
import Sidebar from "./Sidebar";
|
||||||
import styles from "./styles";
|
import { getStyles } from "./styles";
|
||||||
|
|
||||||
const useStyles = makeStyles(styles);
|
|
||||||
|
|
||||||
const AppLayout = () => {
|
const AppLayout = () => {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
const classes = useStyles();
|
const theme = useTheme();
|
||||||
|
const styles = getStyles(theme);
|
||||||
|
|
||||||
const handleDrawerOpen = () => {
|
const handleDrawerOpen = () => {
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
|
@ -20,11 +19,11 @@ const AppLayout = () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classes.root}>
|
<div style={styles.root}>
|
||||||
<TopBar open={open} handleDrawerOpen={handleDrawerOpen} />
|
<TopBar open={open} handleDrawerOpen={handleDrawerOpen} />
|
||||||
<Sidebar open={open} handleDrawerClose={handleDrawerClose} />
|
<Sidebar open={open} handleDrawerClose={handleDrawerClose} />
|
||||||
<main className={classes.content}>
|
<main style={styles.content}>
|
||||||
<div className={classes.toolbar} />
|
<div style={styles.toolbar} />
|
||||||
<AppRoutes />
|
<AppRoutes />
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,16 +7,15 @@ import SettingsIcon from "@mui/icons-material/Settings";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { useTuitioClient } from "@flare/tuitio-client-react";
|
import { useTuitioClient } from "@flare/tuitio-client-react";
|
||||||
import { useToast } from "../../hooks";
|
import { useToast } from "../../hooks";
|
||||||
import styles from "./styles";
|
import { getStyles } from "./styles";
|
||||||
import { makeStyles } from "@mui/material/styles";
|
import { useTheme } from "@mui/material/styles";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
const useStyles = makeStyles(styles);
|
|
||||||
|
|
||||||
const ProfileButton = () => {
|
const ProfileButton = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { error } = useToast();
|
const { error } = useToast();
|
||||||
const classes = useStyles();
|
const theme = useTheme();
|
||||||
|
const styles = getStyles(theme);
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
const { logout } = useTuitioClient({
|
const { logout } = useTuitioClient({
|
||||||
|
@ -67,7 +66,7 @@ const ProfileButton = () => {
|
||||||
handleClose();
|
handleClose();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ListItemIcon className={classes.menuItemIcon}>
|
<ListItemIcon sx={styles.menuItemIcon}>
|
||||||
<AccountBoxIcon fontSize="small" />
|
<AccountBoxIcon fontSize="small" />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<Typography variant="inherit">{t("User.Profile.Label")}</Typography>
|
<Typography variant="inherit">{t("User.Profile.Label")}</Typography>
|
||||||
|
@ -78,13 +77,13 @@ const ProfileButton = () => {
|
||||||
handleClose();
|
handleClose();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<ListItemIcon className={classes.menuItemIcon}>
|
<ListItemIcon sx={styles.menuItemIcon}>
|
||||||
<SettingsIcon fontSize="small" />
|
<SettingsIcon fontSize="small" />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<Typography variant="inherit">{t("User.Settings")}</Typography>
|
<Typography variant="inherit">{t("User.Settings")}</Typography>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
<MenuItem onClick={logout}>
|
<MenuItem onClick={logout}>
|
||||||
<ListItemIcon className={classes.menuItemIcon}>
|
<ListItemIcon sx={styles.menuItemIcon}>
|
||||||
<ExitToAppIcon fontSize="small" />
|
<ExitToAppIcon fontSize="small" />
|
||||||
</ListItemIcon>
|
</ListItemIcon>
|
||||||
<Typography variant="inherit">{t("User.Logout")}</Typography>
|
<Typography variant="inherit">{t("User.Logout")}</Typography>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import clsx from "clsx";
|
import clsx from "clsx";
|
||||||
import { makeStyles, useTheme } from "@mui/material/styles";
|
import { useTheme } from "@mui/material/styles";
|
||||||
import { Drawer, List, Divider, IconButton, ListItemIcon, ListItemText } from "@mui/material";
|
import { Drawer, List, Divider, IconButton, ListItemIcon, ListItemText } from "@mui/material";
|
||||||
import ChevronLeftIcon from "@mui/icons-material/ChevronLeft";
|
import ChevronLeftIcon from "@mui/icons-material/ChevronLeft";
|
||||||
import ChevronRightIcon from "@mui/icons-material/ChevronRight";
|
import ChevronRightIcon from "@mui/icons-material/ChevronRight";
|
||||||
|
@ -14,9 +14,7 @@ import DashboardIcon from "@mui/icons-material/Dashboard";
|
||||||
import FeaturedPlayListIcon from "@mui/icons-material/FeaturedPlayList";
|
import FeaturedPlayListIcon from "@mui/icons-material/FeaturedPlayList";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { useNavigate } from "react-router-dom";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import styles from "./styles";
|
import { getStyles } from "./styles";
|
||||||
|
|
||||||
const useStyles = makeStyles(styles);
|
|
||||||
|
|
||||||
const menu = [
|
const menu = [
|
||||||
{
|
{
|
||||||
|
@ -82,9 +80,8 @@ const sortedMenu = menu.sort((i1, i2) => i1 - i2);
|
||||||
|
|
||||||
const Sidebar = ({ open, handleDrawerClose }) => {
|
const Sidebar = ({ open, handleDrawerClose }) => {
|
||||||
const [selected, setSelected] = useState(null);
|
const [selected, setSelected] = useState(null);
|
||||||
|
|
||||||
const classes = useStyles();
|
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
const styles = getStyles(theme);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
|
|
||||||
|
@ -98,18 +95,18 @@ const Sidebar = ({ open, handleDrawerClose }) => {
|
||||||
return (
|
return (
|
||||||
<Drawer
|
<Drawer
|
||||||
variant="permanent"
|
variant="permanent"
|
||||||
className={clsx(classes.drawer, {
|
sx={clsx(styles.drawer, {
|
||||||
[classes.drawerOpen]: open,
|
[styles.drawerOpen]: open,
|
||||||
[classes.drawerClose]: !open
|
[styles.drawerClose]: !open
|
||||||
})}
|
})}
|
||||||
classes={{
|
classes={{
|
||||||
paper: clsx({
|
paper: clsx({
|
||||||
[classes.drawerOpen]: open,
|
[styles.drawerOpen]: open,
|
||||||
[classes.drawerClose]: !open
|
[styles.drawerClose]: !open
|
||||||
})
|
})
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className={classes.toolbar}>
|
<div style={styles.toolbar}>
|
||||||
<IconButton onClick={handleDrawerClose}>
|
<IconButton onClick={handleDrawerClose}>
|
||||||
{theme.direction === "rtl" ? <ChevronRightIcon /> : <ChevronLeftIcon />}
|
{theme.direction === "rtl" ? <ChevronRightIcon /> : <ChevronLeftIcon />}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
|
|
|
@ -1,24 +1,23 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import PropTypes from "prop-types";
|
import PropTypes from "prop-types";
|
||||||
import clsx from "clsx";
|
import clsx from "clsx";
|
||||||
import { makeStyles } from "@mui/material/styles";
|
import { useTheme } from "@mui/material/styles";
|
||||||
import { AppBar, Toolbar, Typography, IconButton } from "@mui/material";
|
import { AppBar, Toolbar, Typography, IconButton } from "@mui/material";
|
||||||
import MenuIcon from "@mui/icons-material/Menu";
|
import MenuIcon from "@mui/icons-material/Menu";
|
||||||
import ProfileButton from "./ProfileButton";
|
import ProfileButton from "./ProfileButton";
|
||||||
import LightDarkToggle from "./LightDarkToggle";
|
import LightDarkToggle from "./LightDarkToggle";
|
||||||
import SensitiveInfoToggle from "./SensitiveInfoToggle";
|
import SensitiveInfoToggle from "./SensitiveInfoToggle";
|
||||||
import styles from "./styles";
|
import { getStyles } from "./styles";
|
||||||
|
|
||||||
const useStyles = makeStyles(styles);
|
|
||||||
|
|
||||||
const TopBar = ({ open, handleDrawerOpen }) => {
|
const TopBar = ({ open, handleDrawerOpen }) => {
|
||||||
const classes = useStyles();
|
const theme = useTheme();
|
||||||
|
const styles = getStyles(theme);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<AppBar
|
<AppBar
|
||||||
position="fixed"
|
position="fixed"
|
||||||
className={clsx(classes.appBar, {
|
sx={clsx(styles.appBar, {
|
||||||
[classes.appBarShift]: open
|
[styles.appBarShift]: open
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Toolbar>
|
<Toolbar>
|
||||||
|
@ -27,13 +26,13 @@ const TopBar = ({ open, handleDrawerOpen }) => {
|
||||||
aria-label="open drawer"
|
aria-label="open drawer"
|
||||||
onClick={handleDrawerOpen}
|
onClick={handleDrawerOpen}
|
||||||
edge="start"
|
edge="start"
|
||||||
className={clsx(classes.menuButton, {
|
sx={clsx(styles.menuButton, {
|
||||||
[classes.hide]: open
|
[styles.hide]: open
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<MenuIcon />
|
<MenuIcon />
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<Typography variant="h6" noWrap className={classes.title}>
|
<Typography variant="h6" noWrap sx={styles.title}>
|
||||||
Network resurrector
|
Network resurrector
|
||||||
</Typography>
|
</Typography>
|
||||||
<SensitiveInfoToggle />
|
<SensitiveInfoToggle />
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
const drawerWidth = 240;
|
const drawerWidth = 240;
|
||||||
|
|
||||||
const styles = theme => ({
|
const getStyles = theme => ({
|
||||||
root: {
|
root: {
|
||||||
display: "flex"
|
display: "flex"
|
||||||
},
|
},
|
||||||
|
@ -68,4 +68,4 @@ const styles = theme => ({
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
export default styles;
|
export { getStyles };
|
||||||
|
|
Loading…
Reference in New Issue