import { useState } from 'react' import { format, addDays } from 'date-fns' import { Pencil, Check } from 'lucide-react' import { MOCK_ROOMS, MOCK_BOOKINGS } from '../data/mockData' import { FloorMap } from '../components/floormap/FloorMap' import { BookingModal } from '../components/bookings/BookingModal' import { cn } from '../lib/utils' import type { Booking } from '../types' export function FloorMapPage() { const [bookings, setBookings] = useState(MOCK_BOOKINGS) const [createForRoom, setCreateForRoom] = useState(null) const [editMode, setEditMode] = useState(false) const stats = { total: MOCK_ROOMS.length, occupied: MOCK_ROOMS.filter(r => r.status === 'occupied').length, available: MOCK_ROOMS.filter(r => r.status === 'available').length, maintenance: MOCK_ROOMS.filter(r => r.status === 'maintenance' || r.status === 'blocked').length, } return (
{/* Header */}

Поэтажный план

{editMode ? 'Режим редактирования — перетащите номера, загрузите план этажа' : 'Нажмите на свободный номер чтобы создать бронирование'}

{/* Quick stats */}
{[ { label: 'Всего номеров', value: stats.total, color: 'text-slate-900 dark:text-slate-100' }, { label: 'Занято', value: stats.occupied, color: 'text-red-600 dark:text-red-400' }, { label: 'Свободно', value: stats.available, color: 'text-emerald-600 dark:text-emerald-400' }, { label: 'Ремонт/закрыт', value: stats.maintenance, color: 'text-slate-500 dark:text-slate-400' }, ].map(s => (

{s.label}

{s.value}

))}
{/* Floor map */}
setCreateForRoom(id)} />
{/* Create booking modal */} {createForRoom && ( setCreateForRoom(null)} onSave={(data) => { setBookings(prev => [...prev, data as Booking]) setCreateForRoom(null) }} /> )}
) }