hide collapse button, and enable animation of sidebar collapsing in mobile screen

This commit is contained in:
dakai 2023-04-16 17:22:00 +08:00
parent 37c62e1b7e
commit 63544300f5
2 changed files with 64 additions and 18 deletions

View File

@ -48,6 +48,7 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
box-shadow: inset -2px 0px 2px 0px rgb(0, 0, 0, 0.05); box-shadow: inset -2px 0px 2px 0px rgb(0, 0, 0, 0.05);
transition: width ease 0.1s;
} }
.sidebar { .sidebar {
top: 0; top: 0;
@ -108,16 +109,26 @@
border-radius: 0; border-radius: 0;
} }
@keyframes slideRight {
from {
left: -100%;
}
to {
left: 0%;
}
}
.sidebar { .sidebar {
position: absolute; position: absolute;
//left: -100%;
z-index: 1000; z-index: 1000;
height: var(--full-height); height: var(--full-height);
transition: all ease 0.3s; transition: all ease 0.1s;
box-shadow: none; box-shadow: none;
animation: slideRight 0.1s forwards;
} }
.sidebar-collapse { .sidebar-collapse {
display: none; animation: slideRight 0.1s backwards;
//display: none;
} }
.window-content-collapse { .window-content-collapse {

View File

@ -158,6 +158,38 @@ function _Home() {
useSwitchTheme(); useSwitchTheme();
// the two useEffects are for enable animation of the sidebar collapse in mobile screen
const [width, setWidth] = useState(window.innerWidth);
useEffect(() => {
const handleResize = () => {
setWidth(window.innerWidth);
};
window.addEventListener("resize", handleResize);
return () => {
window.removeEventListener("resize", handleResize);
};
}, []);
const [sidebarStyle, setSidebarStyles] = useState({});
useEffect(() => {
if (sidebarCollapse && isMobileScreen()) {
setTimeout(() => {
setSidebarStyles({
display: "none",
});
}, 100);
} else {
setTimeout(() => {
setSidebarStyles({
display: "flex",
});
}, 100);
}
}, [sidebarCollapse, width]);
if (loading) { if (loading) {
return <Loading />; return <Loading />;
} }
@ -171,6 +203,7 @@ function _Home() {
}`} }`}
> >
<div <div
style={{ ...sidebarStyle }}
className={ className={
sidebarCollapse ? styles["sidebar-collapse"] : styles["sidebar"] sidebarCollapse ? styles["sidebar-collapse"] : styles["sidebar"]
} }
@ -248,7 +281,8 @@ function _Home() {
<div className={styles["sidebar-tail"]}> <div className={styles["sidebar-tail"]}>
<div className={styles["sidebar-actions"]}> <div className={styles["sidebar-actions"]}>
<div className={styles["sidebar-action"]}> <div className={styles["sidebar-action"]}>
{sidebarCollapse ? ( {!isMobileScreen() ? (
sidebarCollapse ? (
<IconButton <IconButton
icon={<RightIcon />} icon={<RightIcon />}
onClick={() => { onClick={() => {
@ -262,7 +296,8 @@ function _Home() {
setSideBarCollapse(true); setSideBarCollapse(true);
}} }}
/> />
)} )
) : null}
</div> </div>
<div className={styles["sidebar-action"]}> <div className={styles["sidebar-action"]}>
<IconButton <IconButton