"use client"; import { useEffect, useState } from "react"; type VerseEntry = { verse: number; verse_end?: number; reference: string; }; export function VerseIndex({ verses, chapter, }: { verses: VerseEntry[]; chapter: string; }) { const [activeVerse, setActiveVerse] = useState(null); useEffect(() => { const observer = new IntersectionObserver( (entries) => { for (const entry of entries) { if (entry.isIntersecting) { const id = entry.target.id; const num = parseInt(id.replace("verse-", "")); if (!isNaN(num)) setActiveVerse(num); } } }, { rootMargin: "-20% 0px -60% 0px" }, ); const articles = document.querySelectorAll("article[id^='verse-']"); articles.forEach((el) => observer.observe(el)); return () => observer.disconnect(); }, []); return ( ); }