"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 » réduit de 20 % (1440→1200) pour zoomer le // contenu de +20 % sans coupe. Le ratio (1.6) reste celui du parent. export const ULTIDOCS_DEMO_VIEWPORT_WIDTH = 1200 export const ULTIDOCS_DEMO_VIEWPORT_HEIGHT = 750 export const ULTIDOCS_DEMO_ASPECT_RATIO = ULTIDOCS_DEMO_VIEWPORT_WIDTH / ULTIDOCS_DEMO_VIEWPORT_HEIGHT export function UltidriveDocsDemo() { 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 (
) }