import { useState, useEffect } from 'react'; import { Truck } from 'lucide-react'; import { Dashboard } from './pages/Dashboard'; import { DeliveryListPage } from './pages/DeliveryListPage'; import { DeliveryForm } from './components/delivery/DeliveryForm'; import { useDeliveryStore } from './stores/deliveryStore'; function App() { const [view, setView] = useState<'dashboard' | 'delivery-list'>('dashboard'); const [selectedDate, setSelectedDate] = useState(''); const [isFormOpen, setIsFormOpen] = useState(false); const [formDate, setFormDate] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); const addDelivery = useDeliveryStore(state => state.addDelivery); const fetchDeliveryCounts = useDeliveryStore(state => state.fetchDeliveryCounts); // Refresh counts when form closes useEffect(() => { if (!isFormOpen) { fetchDeliveryCounts(); } }, [isFormOpen, fetchDeliveryCounts]); const handleDateSelect = (date: string) => { setSelectedDate(date); setView('delivery-list'); }; const handleBackToDashboard = () => { setView('dashboard'); setSelectedDate(''); }; const handleAddDelivery = () => { const today = new Date().toLocaleDateString('ru-RU').split('.').join('-'); setFormDate(today); setIsFormOpen(true); }; const handleFormSubmit = async (data: Parameters[0]) => { setIsSubmitting(true); try { await addDelivery(data); setIsFormOpen(false); // If created for different date, navigate to that date const today = new Date().toLocaleDateString('ru-RU').split('.').join('-'); if (data.date !== today) { setSelectedDate(data.date); setView('delivery-list'); } } catch { // Error is handled by store } finally { setIsSubmitting(false); } }; return (

Delivery Tracker

{view === 'dashboard' ? 'Панель управления' : `Доставки на ${selectedDate}`}
{view === 'dashboard' ? ( ) : ( )}
setIsFormOpen(false)} onSubmit={handleFormSubmit} defaultDate={formDate} isSubmitting={isSubmitting} />
); } export default App;