From a1019daab872a12c7e202fb21363bb71644ed807 Mon Sep 17 00:00:00 2001 From: Gabriel Kaszewski Date: Tue, 31 Mar 2026 02:24:14 +0200 Subject: [PATCH] feat: add ReadingProgress client component --- components/reading-progress.tsx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 components/reading-progress.tsx 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 ( +
+
+
+ ); +}