"use client";
import { useConfiguratorStore } from "@/lib/store";
import { Input } from "@/components/ui/input";
import { Label } from "@/components/ui/label";
import { Slider } from "@/components/ui/slider";
import { Check } from "lucide-react";
export function StepDimensions() {
const {
doorConfig,
sidePanel,
width,
height,
minWidth,
maxWidth,
holeWidth,
doorLeafWidth,
sidePanelWidth,
setDoorConfig,
setSidePanel,
setWidth,
setHeight,
} = useConfiguratorStore();
return (
{/* Door Configuration */}
Deur Configuratie
Kies tussen enkele of dubbele deur.
{(['enkele', 'dubbele'] as const).map((config) => {
const selected = doorConfig === config;
return (
);
})}
{/* Side Panel Configuration */}
Zijpanelen
Voeg vaste panelen toe naast de deur.
{(['geen', 'links', 'rechts', 'beide'] as const).map((panel) => {
const selected = sidePanel === panel;
return (
);
})}
{/* Width Control */}
{minWidth}mm - {maxWidth}mm
setWidth(values[0])}
min={minWidth}
max={maxWidth}
step={10}
className="w-full"
/>
{/* Height Presets - Dutch Market Standards */}
Kies een standaard hoogte of stel handmatig in.
{[
{ label: 'Renovatie', value: 2015, desc: '201.5 cm' },
{ label: 'Nieuwbouw', value: 2315, desc: '231.5 cm' },
{ label: 'Plafondhoog', value: 2500, desc: '250+ cm' },
].map((preset) => {
const isActive = height === preset.value;
return (
);
})}
{/* Height Control */}
setHeight(values[0])}
min={1800}
max={3000}
step={10}
className="w-full"
/>
{/* Summary */}
Samenvatting afmetingen
Deurblad breedte:{" "}
{Math.round(doorLeafWidth)}mm
Totale wandopening:{" "}
{Math.round(holeWidth)}mm × {height}mm
{sidePanelWidth > 0 && (
Zijpaneel breedte:{" "}
{Math.round(sidePanelWidth)}mm
)}
);
}