this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove the need for setStates

+53 -30
+53 -30
src/utils/useScrollFn.js
··· 17 17 deps, 18 18 ) { 19 19 if (!callback) return; 20 - const [scrollDirection, setScrollDirection] = useState(null); 21 - const [reachStart, setReachStart] = useState(false); 22 - const [reachEnd, setReachEnd] = useState(false); 23 - const [nearReachStart, setNearReachStart] = useState(false); 24 - const [nearReachEnd, setNearReachEnd] = useState(false); 20 + // const [scrollDirection, setScrollDirection] = useState(null); 21 + // const [reachStart, setReachStart] = useState(false); 22 + // const [reachEnd, setReachEnd] = useState(false); 23 + // const [nearReachStart, setNearReachStart] = useState(false); 24 + // const [nearReachEnd, setNearReachEnd] = useState(false); 25 25 const isVertical = direction === 'vertical'; 26 26 const previousScrollStart = useRef(null); 27 + const scrollDirection = useRef(null); 27 28 28 29 const onScroll = useThrottledCallback(() => { 30 + // let scrollDirection = null; 31 + let reachStart = false; 32 + let reachEnd = false; 33 + let nearReachStart = false; 34 + let nearReachEnd = false; 35 + 29 36 const scrollableElement = scrollableRef.current; 30 37 const { 31 38 scrollTop, ··· 60 67 ? scrollThresholdEnd 61 68 : scrollThresholdStart) 62 69 ) { 63 - setScrollDirection( 64 - previousScrollStart.current < scrollStart ? 'end' : 'start', 65 - ); 70 + // setScrollDirection( 71 + // previousScrollStart.current < scrollStart ? 'end' : 'start', 72 + // ); 73 + scrollDirection.current = 74 + previousScrollStart.current < scrollStart ? 'end' : 'start'; 66 75 previousScrollStart.current = scrollStart; 67 76 } 68 77 69 - setReachStart(scrollStart <= 0); 70 - setReachEnd(scrollStart + clientDimension >= scrollDimension); 71 - setNearReachStart(scrollStart <= distanceFromStartPx); 72 - setNearReachEnd( 73 - scrollStart + clientDimension >= scrollDimension - distanceFromEndPx, 74 - ); 78 + // setReachStart(scrollStart <= 0); 79 + // setReachEnd(scrollStart + clientDimension >= scrollDimension); 80 + // setNearReachStart(scrollStart <= distanceFromStartPx); 81 + // setNearReachEnd( 82 + // scrollStart + clientDimension >= scrollDimension - distanceFromEndPx, 83 + // ); 84 + reachStart = scrollStart <= 0; 85 + reachEnd = scrollStart + clientDimension >= scrollDimension; 86 + nearReachStart = scrollStart <= distanceFromStartPx; 87 + nearReachEnd = 88 + scrollStart + clientDimension >= scrollDimension - distanceFromEndPx; 89 + 90 + callback({ 91 + scrollDirection: scrollDirection.current, 92 + reachStart, 93 + reachEnd, 94 + nearReachStart, 95 + nearReachEnd, 96 + }); 75 97 }, 500); 76 98 77 99 useLayoutEffect(() => { ··· 88 110 distanceFromEnd, 89 111 scrollThresholdStart, 90 112 scrollThresholdEnd, 113 + ...deps, 91 114 ]); 92 115 93 - useEffect(() => { 94 - callback({ 95 - scrollDirection, 96 - reachStart, 97 - reachEnd, 98 - nearReachStart, 99 - nearReachEnd, 100 - }); 101 - }, [ 102 - scrollDirection, 103 - reachStart, 104 - reachEnd, 105 - nearReachStart, 106 - nearReachEnd, 107 - ...deps, 108 - ]); 116 + // useEffect(() => { 117 + // callback({ 118 + // scrollDirection, 119 + // reachStart, 120 + // reachEnd, 121 + // nearReachStart, 122 + // nearReachEnd, 123 + // }); 124 + // }, [ 125 + // scrollDirection, 126 + // reachStart, 127 + // reachEnd, 128 + // nearReachStart, 129 + // nearReachEnd, 130 + // ...deps, 131 + // ]); 109 132 110 133 useEffect(() => { 111 134 if (init && scrollableRef.current) {