'use client'; import clsx from 'clsx'; import Button from 'components/rua/button'; import { memo, useCallback, useEffect, useRef, useState } from 'react'; import { FiChevronUp } from 'react-icons/fi'; const BackToTop = () => { const handleBack = () => { const target = document.documentElement || document.body; target.scrollTo({ top: 0, }); }; const [showTop, setShowTop] = useState(false); const lastScrollTop = useRef(0); const handleScroll = useCallback(() => { const st = window.pageYOffset || document.documentElement.scrollTop; if (st > lastScrollTop.current || st <= 0) { // downscroll setShowTop(false); } else { // upscroll setShowTop(true); } lastScrollTop.current = st <= 0 ? 0 : st; }, []); useEffect(() => { window.addEventListener('scroll', handleScroll); return () => window.removeEventListener('scroll', handleScroll); }, [handleScroll]); return ( <> ); }; export default memo(BackToTop);