simpler
This commit is contained in:
@@ -105,33 +105,22 @@ export default function CustomScrollbar(props: CustomScrollbarProps) {
|
|||||||
|
|
||||||
updateScrollbar();
|
updateScrollbar();
|
||||||
|
|
||||||
setTimeout(() => updateScrollbar(), 100);
|
|
||||||
setTimeout(() => updateScrollbar(), 500);
|
|
||||||
|
|
||||||
const handleResize = () => {
|
const handleResize = () => {
|
||||||
setWindowWidth(window.innerWidth);
|
setWindowWidth(window.innerWidth);
|
||||||
updateScrollbar();
|
updateScrollbar();
|
||||||
};
|
};
|
||||||
|
|
||||||
let mutationTimeout: NodeJS.Timeout;
|
const resizeObserver = new ResizeObserver(() => {
|
||||||
const observer = new MutationObserver(() => {
|
|
||||||
clearTimeout(mutationTimeout);
|
|
||||||
mutationTimeout = setTimeout(() => {
|
|
||||||
updateScrollbar();
|
updateScrollbar();
|
||||||
}, 150);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
observer.observe(containerRef, {
|
resizeObserver.observe(containerRef);
|
||||||
childList: true,
|
|
||||||
subtree: true
|
|
||||||
});
|
|
||||||
|
|
||||||
containerRef.addEventListener("scroll", updateScrollbar, { passive: true });
|
containerRef.addEventListener("scroll", updateScrollbar, { passive: true });
|
||||||
window.addEventListener("resize", handleResize);
|
window.addEventListener("resize", handleResize);
|
||||||
|
|
||||||
onCleanup(() => {
|
onCleanup(() => {
|
||||||
observer.disconnect();
|
resizeObserver.disconnect();
|
||||||
clearTimeout(mutationTimeout);
|
|
||||||
containerRef?.removeEventListener("scroll", updateScrollbar);
|
containerRef?.removeEventListener("scroll", updateScrollbar);
|
||||||
window.removeEventListener("resize", handleResize);
|
window.removeEventListener("resize", handleResize);
|
||||||
if (hideTimeout) clearTimeout(hideTimeout);
|
if (hideTimeout) clearTimeout(hideTimeout);
|
||||||
|
|||||||
Reference in New Issue
Block a user