"use client" import { useEffect, useRef, useState } from "react" import { ProductDemoFrame } from "@/components/landing/product/product-demo-frame" import { ScaledPreviewIframe } from "@/components/landing/product/scaled-preview-iframe" // Viewport logique « grand écran » : l'annuaire est rendu plus large puis réduit // pour fit dans le cadre — dézoome un peu le contenu (plus de fiches visibles). const DIRECTORY_DEMO_VIEWPORT_WIDTH = 1040 const DIRECTORY_DEMO_VIEWPORT_HEIGHT = 700 const DIRECTORY_DEMO_ASPECT_RATIO = DIRECTORY_DEMO_VIEWPORT_WIDTH / DIRECTORY_DEMO_VIEWPORT_HEIGHT export function UlticardsDirectoryDemo() { const ref = useRef(null) const [visible, setVisible] = useState(false) useEffect(() => { const node = ref.current if (!node) return const observer = new IntersectionObserver( (entries) => { if (entries.some((entry) => entry.isIntersecting)) { setVisible(true) observer.disconnect() } }, { rootMargin: "120px 0px" } ) observer.observe(node) return () => observer.disconnect() }, []) return (
) }