"use client"; import { useRef } from "react"; import { useConfiguratorStore } from "@/lib/store"; import { RoundedBox } from "@react-three/drei"; import * as THREE from "three"; // Steel material - fallback to solid color for now const SteelMaterial = ({ color }: { color: string }) => ( ); // Glass material - More opaque/white for technical drawing look const GlassMaterial = () => ( ); // 3D Dimension Label Component - temporarily disabled function DimensionLabel({ value, position, label, }: { value: number; position: [number, number, number]; label: string; }) { return null; // Temporarily disabled to fix loading } export function Door3DEnhanced() { const { doorType, gridType, finish, handle, doorLeafWidth, height } = useConfiguratorStore(); const doorRef = useRef(null); // Frame color based on finish const frameColor = { zwart: "#1a1a1a", brons: "#8B6F47", grijs: "#525252", }[finish]; // Convert mm to meters for 3D scene const doorWidth = doorLeafWidth / 1000; // Convert mm to m const doorHeight = height / 1000; // Convert mm to m // Profile dimensions (in meters) - Thicker for visibility const stileWidth = 0.06; // 60mm vertical profiles (more visible) const stileDepth = 0.06; // 60mm depth const railHeight = 0.04; // 40mm horizontal profiles (more visible) const railDepth = 0.06; // 60mm depth const glassThickness = 0.01; // 10mm glass const profileRadius = 0.002; // 2mm rounded corners // Calculate positions for grid dividers const getDividerPositions = () => { if (gridType === "3-vlak") { return [-doorHeight / 3, doorHeight / 3]; } else if (gridType === "4-vlak") { return [-doorHeight / 2, 0, doorHeight / 2]; } return []; }; const dividerPositions = getDividerPositions(); return ( {/* LEFT STILE - Vertical profile */} {/* RIGHT STILE - Vertical profile */} {/* TOP RAIL - Horizontal profile */} {/* BOTTOM RAIL - Horizontal profile */} {/* INTERMEDIATE RAILS (Grid dividers) */} {dividerPositions.map((yPos, index) => ( ))} {/* VERTICAL DIVIDER for Paneel */} {doorType === "paneel" && ( )} {/* GLASS PANEL - Sits inside the frame */} {/* HANDLE - U-Greep for Taats */} {doorType === "taats" && handle === "u-greep" && ( )} {/* HANDLE - Klink for Scharnier */} {doorType === "scharnier" && handle === "klink" && ( )} {/* 3D DIMENSION LABELS */} {/* Width dimension */} {/* Height dimension */} {/* Dimension lines */} {/* Horizontal line for width */} {/* Vertical line for height */} ); }