Skip to content

Commit 46fca8b

Browse files
committed
Create scroll to top hook
1 parent c3c61bb commit 46fca8b

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

src/hooks/useScrollToTop.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { useState } from 'react';
2+
import { FIChevronUp } from 'react-icons/fi';
3+
4+
const useScrollToTop = () => {
5+
const [showScroll, setShowScroll] = useState(false);
6+
7+
const scrollToTop = () => {
8+
if (!showScroll & (window.pageYOffset > 500)) {
9+
setShowScroll(true);
10+
} else if (showScroll && window.pageYOffset <= 500) {
11+
setShowScroll(false);
12+
}
13+
};
14+
15+
const backToTop = () => {
16+
window.scrollTo({
17+
top: 0,
18+
behavior: 'smooth',
19+
});
20+
};
21+
22+
window.addEventListener('scroll', scrollToTop);
23+
24+
return (
25+
<>
26+
<FIChevronUp
27+
className="scrollToTop"
28+
onClick={backToTop}
29+
style={{ height: 40, display: showScroll ? 'flex' : 'none' }}
30+
/>
31+
</>
32+
);
33+
};
34+
35+
export default useScrollToTop;

0 commit comments

Comments
 (0)