From f707d3d524d8d16e2bb780764f029d85fc57ecc0 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Fri, 26 Jul 2019 13:22:00 +0300 Subject: prop-types -> jsdoc --- vnext/src/ui/Header.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'vnext/src/ui/Header.js') diff --git a/vnext/src/ui/Header.js b/vnext/src/ui/Header.js index b25879d4..2d042bfe 100644 --- a/vnext/src/ui/Header.js +++ b/vnext/src/ui/Header.js @@ -13,11 +13,10 @@ export default function Header({ children }) { let wScrollBefore = useRef(0); let wScrollDiff = useRef(0); - useEffect(() => { - window.addEventListener('scroll', () => (!window.requestAnimationFrame) - ? throttle(250, updateHeader) - : window.requestAnimationFrame(updateHeader), false); - }, [updateHeader]); + /** + * @param {number} delay + * @param {{ (): void; apply?: any; }} fn + */ let throttle = (delay, fn) => { var last, deferTimer; return function () { @@ -45,7 +44,7 @@ export default function Header({ children }) { if (wScrollCurrent.current <= 0) { // scrolled to the very top; element sticks to the top header.classList.remove(elClassHidden); - } else if (wScrollDiff > 0 && header.classList.contains(elClassHidden)) { + } else if (wScrollDiff.current > 0 && header.classList.contains(elClassHidden)) { // scrolled up; element slides in header.classList.remove(elClassHidden); } else if (wScrollDiff.current < 0) { @@ -60,6 +59,12 @@ export default function Header({ children }) { } wScrollBefore.current = wScrollCurrent.current; }, []); + + useEffect(() => { + window.addEventListener('scroll', () => (!window.requestAnimationFrame) + ? throttle(250, updateHeader) + : window.requestAnimationFrame(updateHeader), false); + }, [updateHeader]); return ReactDOM.createPortal(children, header); } -- cgit v1.2.3