"use client"; import { Suspense, useCallback } from "react"; import { useConfiguratorStore } from "@/lib/store"; import { Scene3D } from "./scene"; import { Camera } from "lucide-react"; function LoadingFallback() { return (

3D Scene laden...

); } function formatPrice(amount: number): string { return new Intl.NumberFormat("nl-NL", { style: "currency", currency: "EUR", minimumFractionDigits: 0, maximumFractionDigits: 0, }).format(amount); } export function DoorVisualizer() { const { doorType, gridType, finish, handle, priceBreakdown, setScreenshotDataUrl } = useConfiguratorStore(); const handleScreenshot = useCallback(() => { const canvas = document.querySelector("canvas"); if (!canvas) return; const dataUrl = canvas.toDataURL("image/png"); setScreenshotDataUrl(dataUrl); // Also trigger download const link = document.createElement("a"); link.download = "proinn-deur-configuratie.png"; link.href = dataUrl; link.click(); }, [setScreenshotDataUrl]); return (
{/* Live Preview Badge */}
3D Voorbeeld
{/* Screenshot Button */}
{/* 3D Scene */} }> {/* Live Price Badge */}
Indicatieprijs
{formatPrice(priceBreakdown.totalPrice)}
{/* Configuration Info Card */}
Type
{doorType}
Verdeling
{gridType}
Afwerking
{finish}
Greep
{handle}
{/* Controls Hint */}

Drag to rotate - Scroll to zoom

); }