import { useState } from 'react'; import { X, Layers, ArrowRight, Loader2 } from 'lucide-react'; import { layoutApi } from '../../../lib/layoutApi'; interface AddFloorModalProps { isOpen: boolean; onClose: () => void; buildingId: string | null; onCreated: (floorId: string) => void; } export function AddFloorModal({ isOpen, onClose, buildingId, onCreated }: AddFloorModalProps) { const [loading, setLoading] = useState(false); const [formData, setFormData] = useState<{ name: string; number: number; width: number; height: number; ceilingHeight?: number; defaultTiers: number; }>({ name: '', number: 1, width: 100, height: 100, ceilingHeight: undefined, defaultTiers: 1 }); if (!isOpen || !buildingId) return null; const handleCreate = async () => { if (!formData.name.trim()) return; setLoading(true); try { const floor = await layoutApi.createFloor({ buildingId, name: formData.name.trim(), number: formData.number, width: formData.width, height: formData.height, ceilingHeight: formData.ceilingHeight, defaultTiers: formData.defaultTiers }); onCreated(floor.id); onClose(); // Reset form setFormData({ name: '', number: formData.number + 1, width: 100, height: 100, ceilingHeight: undefined, defaultTiers: 1 }); } catch (error) { console.error('Failed to create floor:', error); } finally { setLoading(false); } }; return (
Define floor dimensions