"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'agenda est rendu plus large puis réduit // pour fit dans le cadre — dézoome un peu le contenu (plus de calendrier visible). const AGENDA_DEMO_VIEWPORT_WIDTH = 1040 const AGENDA_DEMO_VIEWPORT_HEIGHT = 700 const AGENDA_DEMO_ASPECT_RATIO = AGENDA_DEMO_VIEWPORT_WIDTH / AGENDA_DEMO_VIEWPORT_HEIGHT export function UlticalAgendaDemo() { 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 (
) }