mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-09 11:36:38 +08:00
hide collapse button, and enable animation of sidebar collapsing in mobile screen
This commit is contained in:
parent
37c62e1b7e
commit
63544300f5
@ -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 {
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user