fix(Sidebar): scroll to top once the sidebar be closed.

This commit is contained in:
a.bouhuolia
2021-03-21 13:38:10 +02:00
parent 81621020c2
commit 0f1c88cba3
5 changed files with 43 additions and 20 deletions

View File

@@ -16,19 +16,42 @@ function SidebarContainer({
// #withDashboard
sidebarExpended,
}) {
const sidebarScrollerRef = React.useRef();
useEffect(() => {
document.body.classList.toggle('has-mini-sidebar', !sidebarExpended);
if (!sidebarExpended && sidebarScrollerRef.current) {
sidebarScrollerRef.current.scrollTo({
top: 0,
left: 0,
});
}
}, [sidebarExpended]);
const handleSidebarMouseLeave = () => {
if (!sidebarExpended && sidebarScrollerRef.current) {
sidebarScrollerRef.current.scrollTo({ top: 0, left: 0, });
}
};
const scrollerElementRef = (ref) => {
sidebarScrollerRef.current = ref;
};
return (
<div
className={classNames('sidebar', {
'sidebar--mini-sidebar': !sidebarExpended,
})}
id="sidebar"
onMouseLeave={handleSidebarMouseLeave}
>
<div className={'sidebar__scroll-wrapper'}>
<Scrollbar noDefaultStyles={true}>
<Scrollbar
noDefaultStyles={true}
scrollerProps={{ elementRef: scrollerElementRef }}
>
<div className="sidebar__inner">{children}</div>
</Scrollbar>
</div>