MCPcopy Create free account
hub / github.com/Bitbox-Connect/Bitbox / ProgressBar

Function ProgressBar

client/src/component/ProgressBar/ProgressBar.jsx:4–36  ·  view source on GitHub ↗
({ mode })

Source from the content-addressed store, hash-verified

2import './ProgressBar.css';
3
4const ProgressBar = ({ mode }) => {
5 const [scrollPercent, setScrollPercent] = useState(0);
6
7 const updateProgressBar = () => {
8 const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
9 const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
10 const scrollProgress = (scrollTop / scrollHeight) * 100;
11 setScrollPercent(scrollProgress);
12 };
13
14 useEffect(() => {
15 window.addEventListener('scroll', updateProgressBar);
16 return () => window.removeEventListener('scroll', updateProgressBar);
17 }, []);
18
19 const progressBarColor = mode === 'dark' ? 'white' : 'black';
20 const containerBackgroundColor = mode === 'dark' ? 'black' : 'white';
21
22 return (
23 <div
24 id="progressBarContainer"
25 style={{ backgroundColor: containerBackgroundColor }}
26 >
27 <div
28 id="progressBar"
29 style={{
30 width: `${scrollPercent}%`,
31 backgroundColor: progressBarColor
32 }}
33 ></div>
34 </div>
35 );
36};
37
38export default ProgressBar;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected