import React, { useState } from 'react'; import { useDemoStore } from '../../mock/store'; import { Modal } from '../../shared/components/Modal'; import { Button } from '../../shared/components/Button'; import { Input } from '../../shared/components/Input'; import { ShoppingBag, Calendar, UserPlus, Car, Wrench, CheckCircle2, } from 'lucide-react'; export const QuickActionsModal: React.FC = () => { const { isQuickActionsOpen, setIsQuickActionsOpen, getActiveProfile, addBooking, addWorkOrder, activeLocation, } = useDemoStore(); const profile = getActiveProfile(); const [activeTab, setActiveTab] = useState('order'); const [successMessage, setSuccessMessage] = useState(null); // Form states const [clientName, setClientName] = useState(''); const [clientPhone, setClientPhone] = useState(''); const [bookingTime, setBookingTime] = useState('19:00'); const [resource, setResource] = useState('Стол 3'); const [vehicle, setVehicle] = useState('Toyota Camry (А123АА 154)'); const [amount, setAmount] = useState('1500'); const handleCreate = (e: React.FormEvent) => { e.preventDefault(); if (activeTab === 'booking') { addBooking({ clientName: clientName || 'Новый клиент', clientPhone: clientPhone || '+7 (900) 000-00-00', resourceName: resource, time: bookingTime, status: 'confirmed', deposit: Number(amount) || 0, }); setSuccessMessage(`Бронирование ресурса "${resource}" успешно создано!`); } else if (activeTab === 'work_order') { addWorkOrder({ vehicle: vehicle || 'Автомобиль клиента', ownerName: clientName || 'Владелец', phone: clientPhone || '+7 (900) 000-00-00', bay: 'Пост 1', masterName: 'Иван Кузнецов', services: ['Комплексная диагностика', 'Мойка / ТО'], partsAmount: 1200, laborAmount: Number(amount) || 2500, status: 'in_progress', }); setSuccessMessage(`Заказ-наряд на ${vehicle} открыт!`); } else { setSuccessMessage(`Действие успешно выполнено для точки "${activeLocation}"!`); } setTimeout(() => { setSuccessMessage(null); setIsQuickActionsOpen(false); }, 1200); }; return ( setIsQuickActionsOpen(false)} title="Быстрое создание" subtitle={`Профиль: ${profile.name} • ${activeLocation}`} maxWidth="lg" > {successMessage ? (

{successMessage}

Данные синхронизированы в локальном mock API

) : (
{/* Action Types selector */}
setClientName(e.target.value)} placeholder="Иван Петров" required /> setClientPhone(e.target.value)} placeholder="+7 (913) 000-00-00" required />
{activeTab === 'booking' && (
setResource(e.target.value)} placeholder="Стол 4 / Пост 2 / Мастер" /> setBookingTime(e.target.value)} />
)} {activeTab === 'work_order' && (
setVehicle(e.target.value)} placeholder="BMW X5 (А001АА 154)" icon={} />
)}
setAmount(e.target.value)} placeholder="2500" />
)}
); };