(null);
const [visible, setVisible] = useState(false);
useEffect(() => {
const el = ref.current;
if (!el) return;
if (typeof IntersectionObserver === "undefined") {
const t = setTimeout(() => setVisible(true), 0);
return () => clearTimeout(t);
}
const io = new IntersectionObserver(
(entries) => {
if (entries.some((e) => e.isIntersecting)) {
setVisible(true);
io.disconnect();
}
},
{ rootMargin: "200px" },
);
io.observe(el);
return () => io.disconnect();
}, []);
return (
{visible ? : }
{children}
{interactive ? (
Open interactive map →
) : (
Open interactive map →
)}
);
}