diff --git a/components/reading-progress.tsx b/components/reading-progress.tsx new file mode 100644 index 0000000..b6bfba2 --- /dev/null +++ b/components/reading-progress.tsx @@ -0,0 +1,32 @@ +"use client"; + +import { useEffect, useState } from "react"; + +export default function ReadingProgress() { + const [progress, setProgress] = useState(0); + + useEffect(() => { + const handleScroll = () => { + const scrollable = document.body.scrollHeight - window.innerHeight; + if (scrollable > 0) { + setProgress((window.scrollY / scrollable) * 100); + } + }; + + window.addEventListener("scroll", handleScroll, { passive: true }); + return () => window.removeEventListener("scroll", handleScroll); + }, []); + + return ( +
+
+
+ ); +}