generated from Luis/nextjs-python-web-template
Style adjustments in sidebar collapsible menu
- close collapsable menu if screen size small
This commit is contained in:
@@ -6,6 +6,7 @@ import {
|
|||||||
ListItemButton,
|
ListItemButton,
|
||||||
ListItemIcon,
|
ListItemIcon,
|
||||||
ListItemText,
|
ListItemText,
|
||||||
|
useMediaQuery
|
||||||
} from "@mui/material";
|
} from "@mui/material";
|
||||||
import Image from "next/image";
|
import Image from "next/image";
|
||||||
import React, { ReactNode } from "react";
|
import React, { ReactNode } from "react";
|
||||||
@@ -88,14 +89,26 @@ export function Sidebar(props: SidebarProps) {
|
|||||||
);
|
);
|
||||||
const [collapseMenuOpen, setCollapseMenuOpen] = React.useState(true);
|
const [collapseMenuOpen, setCollapseMenuOpen] = React.useState(true);
|
||||||
|
|
||||||
const handleCollapseClick = () => {
|
const isSmallerScreen = useMediaQuery("(max-width: 1025px)");
|
||||||
setCollapseMenuOpen(!collapseMenuOpen);
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleMenuItemClick = (path: string) => {
|
const handleMenuItemClick = (path: string) => {
|
||||||
setActiveMenuItem(path);
|
setActiveMenuItem(path);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleCollapseClick = () => {
|
||||||
|
if (isSmallerScreen) {
|
||||||
|
setCollapseMenuOpen(!collapseMenuOpen);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
React.useEffect(() => {
|
||||||
|
if (isSmallerScreen) {
|
||||||
|
setCollapseMenuOpen(false);
|
||||||
|
} else {
|
||||||
|
setCollapseMenuOpen(true);
|
||||||
|
}
|
||||||
|
}, [isSmallerScreen]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<aside
|
<aside
|
||||||
style={{ backgroundColor: "#00497c" }}
|
style={{ backgroundColor: "#00497c" }}
|
||||||
|
|||||||
Reference in New Issue
Block a user