"use client"; import { useEffect, useState } from "react"; import { List } from "lucide-react"; export default function DocsToc({ headings }) { const [activeId, setActiveId] = useState(""); useEffect(() => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { setActiveId(entry.target.id); } }); }, { rootMargin: "-80px 0px -80% 0px" } ); headings.forEach(({ id }) => { const element = document.getElementById(id); if (element) observer.observe(element); }); return () => observer.disconnect(); }, [headings]); if (!headings || headings.length === 0) return null; return ( ); }