mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-04-20 10:42:12 +00:00
useOnScrollToBottom implemented
This commit is contained in:
parent
b3e7b4a31a
commit
62c2c8438a
2 changed files with 22 additions and 0 deletions
|
|
@ -36,6 +36,7 @@ const useDeepEqualState = require('./useDeepEqualState');
|
|||
const useFullscreen = require('./useFullscreen');
|
||||
const useLiveRef = require('./useLiveRef');
|
||||
const useModelState = require('./useModelState');
|
||||
const useOnScrollToBottom = require('./useOnScrollToBottom');
|
||||
const useProfile = require('./useProfile');
|
||||
const useStreamingServer = require('./useStreamingServer');
|
||||
|
||||
|
|
@ -78,6 +79,7 @@ module.exports = {
|
|||
useFullscreen,
|
||||
useLiveRef,
|
||||
useModelState,
|
||||
useOnScrollToBottom,
|
||||
useProfile,
|
||||
useStreamingServer
|
||||
};
|
||||
|
|
|
|||
20
src/common/useOnScrollToBottom.js
Normal file
20
src/common/useOnScrollToBottom.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
const React = require('react');
|
||||
|
||||
const useOnScrollToBottom = (cb, threshold = 0) => {
|
||||
const triggeredRef = React.useRef(false);
|
||||
const onScroll = React.useCallback((event) => {
|
||||
if (event.target.scrollTop + event.target.clientHeight >= event.target.scrollHeight - threshold) {
|
||||
if (!triggeredRef.current) {
|
||||
triggeredRef.current = true;
|
||||
if (typeof cb === 'function') {
|
||||
cb(event);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
triggeredRef.current = false;
|
||||
}
|
||||
}, [cb]);
|
||||
return onScroll;
|
||||
};
|
||||
|
||||
module.exports = useOnScrollToBottom;
|
||||
Loading…
Reference in a new issue