"use client"; import { useConfiguratorStore, type DoorType } from "@/lib/store"; import { useFormContext } from "@/components/offerte/form-context"; import { Check } from "lucide-react"; // Door type visual icons (inline SVGs) function TaatsIcon({ selected }: { selected: boolean }) { const stroke = selected ? "#C4D668" : "#1A2E2E"; const fill = selected ? "#C4D668" : "none"; return ( {/* Door frame */} {/* Glass */} {/* Pivot point (center) */} {/* Rotation arrow */} ); } function ScharnierIcon({ selected }: { selected: boolean }) { const stroke = selected ? "#C4D668" : "#1A2E2E"; const fill = selected ? "#C4D668" : "none"; return ( {/* Door frame */} {/* Glass */} {/* Hinge dots on left side */} {/* Rotation arrow from hinge side */} ); } function PaneelIcon({ selected }: { selected: boolean }) { const stroke = selected ? "#C4D668" : "#1A2E2E"; return ( {/* Door frame */} {/* Glass */} {/* Fixed indicator - lock symbol */} ); } const doorTypeIcons: Record React.ReactElement> = { taats: TaatsIcon, scharnier: ScharnierIcon, paneel: PaneelIcon, }; // Grid type visual illustrations (CSS-based rectangles with dividers) function GridIllustration({ dividers, selected }: { dividers: number; selected: boolean }) { const borderColor = selected ? "border-[#C4D668]" : "border-[#1A2E2E]/40"; const dividerBg = selected ? "bg-[#C4D668]" : "bg-[#1A2E2E]/30"; const glassBg = selected ? "bg-[#C4D668]/10" : "bg-gray-100"; return (
{dividers === 0 && (
)} {dividers > 0 && Array.from({ length: dividers + 1 }).map((_, i) => (
{i > 0 &&
}
)) }
); } const doorTypes: Array<{ value: DoorType; label: string; description: string; }> = [ { value: "taats", label: "Taatsdeur", description: "Pivoterende deur", }, { value: "scharnier", label: "Scharnierdeur", description: "Zijscharnieren", }, { value: "paneel", label: "Vast Paneel", description: "Geen beweging", }, ]; const gridTypes: Array<{ value: "3-vlak" | "4-vlak" | "geen"; label: string; description: string; dividers: number; }> = [ { value: "geen", label: "Geen", description: "Volledig vlak", dividers: 0 }, { value: "3-vlak", label: "3-vlaks", description: "2 balken", dividers: 2 }, { value: "4-vlak", label: "4-vlaks", description: "3 balken", dividers: 3 }, ]; export function StepProduct() { const { nextStep } = useFormContext(); const { doorType, gridType, setDoorType, setGridType } = useConfiguratorStore(); return (
{/* Door Type Selection - Visual Tiles */}

Kies uw deurtype

Selecteer het type stalen deur dat u wilt configureren.

{doorTypes.map((type) => { const selected = doorType === type.value; const IconComponent = doorTypeIcons[type.value]; return ( ); })}
{/* Grid Type Selection - Visual Tiles */}

Verdeling

Kies het aantal horizontale vlakken.

{gridTypes.map((type) => { const selected = gridType === type.value; return ( ); })}
{/* Continue Button */}
); }