|
@@ -91,7 +91,7 @@ const StickyStretchableScroller = (props) => {
|
|
|
if (contentsHeight < viewHeight) {
|
|
if (contentsHeight < viewHeight) {
|
|
|
$(scrollTargetSelector).slimScroll({ destroy: true });
|
|
$(scrollTargetSelector).slimScroll({ destroy: true });
|
|
|
}
|
|
}
|
|
|
- }, [contentsElemSelector, calcViewHeightFunc, calcContentsHeightFunc]);
|
|
|
|
|
|
|
+ }, [contentsElemSelector, calcViewHeightFunc, calcContentsHeightFunc, scrollTargetSelector]);
|
|
|
|
|
|
|
|
const resetScrollbarDebounced = debounce(100, resetScrollbar);
|
|
const resetScrollbarDebounced = debounce(100, resetScrollbar);
|
|
|
|
|
|
|
@@ -99,7 +99,7 @@ const StickyStretchableScroller = (props) => {
|
|
|
const stickyChangeHandler = useCallback((event) => {
|
|
const stickyChangeHandler = useCallback((event) => {
|
|
|
logger.debug('StickyEvents.CHANGE detected');
|
|
logger.debug('StickyEvents.CHANGE detected');
|
|
|
resetScrollbar();
|
|
resetScrollbar();
|
|
|
- });
|
|
|
|
|
|
|
+ }, [resetScrollbar]);
|
|
|
|
|
|
|
|
// setup effect by sticky event
|
|
// setup effect by sticky event
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
@@ -118,7 +118,7 @@ const StickyStretchableScroller = (props) => {
|
|
|
return () => {
|
|
return () => {
|
|
|
elem.removeEventListener(StickyEvents.CHANGE, stickyChangeHandler);
|
|
elem.removeEventListener(StickyEvents.CHANGE, stickyChangeHandler);
|
|
|
};
|
|
};
|
|
|
- }, []);
|
|
|
|
|
|
|
+ }, [stickyElemSelector, stickyChangeHandler]);
|
|
|
|
|
|
|
|
// setup effect by resizing event
|
|
// setup effect by resizing event
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
@@ -132,19 +132,19 @@ const StickyStretchableScroller = (props) => {
|
|
|
return () => {
|
|
return () => {
|
|
|
window.removeEventListener('resize', resizeHandler);
|
|
window.removeEventListener('resize', resizeHandler);
|
|
|
};
|
|
};
|
|
|
- }, []);
|
|
|
|
|
|
|
+ }, [resetScrollbarDebounced]);
|
|
|
|
|
|
|
|
// setup effect by isScrollTop
|
|
// setup effect by isScrollTop
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
if (navigationContainer.state.isScrollTop) {
|
|
if (navigationContainer.state.isScrollTop) {
|
|
|
resetScrollbar();
|
|
resetScrollbar();
|
|
|
}
|
|
}
|
|
|
- }, [navigationContainer.state.isScrollTop]);
|
|
|
|
|
|
|
+ }, [navigationContainer.state.isScrollTop, resetScrollbar]);
|
|
|
|
|
|
|
|
// setup effect by update props
|
|
// setup effect by update props
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
resetScrollbarDebounced();
|
|
resetScrollbarDebounced();
|
|
|
- });
|
|
|
|
|
|
|
+ }, [resetScrollbarDebounced]);
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|