switch frontend to real API instead of mocks

This commit is contained in:
Egor Pozharov
2026-04-14 16:17:42 +06:00
parent 7f410e814b
commit 0540218332
11 changed files with 476 additions and 182 deletions

View File

@@ -1,4 +1,4 @@
import { useState } from 'react';
import { useState, useEffect } from 'react';
import { Truck } from 'lucide-react';
import { Dashboard } from './pages/Dashboard';
import { DeliveryListPage } from './pages/DeliveryListPage';
@@ -10,8 +10,17 @@ function App() {
const [selectedDate, setSelectedDate] = useState<string>('');
const [isFormOpen, setIsFormOpen] = useState(false);
const [formDate, setFormDate] = useState<string>('');
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);
@@ -29,13 +38,22 @@ function App() {
setIsFormOpen(true);
};
const handleFormSubmit = (data: Parameters<typeof addDelivery>[0]) => {
addDelivery(data);
setIsFormOpen(false);
if (data.date !== new Date().toLocaleDateString('ru-RU').split('.').join('-')) {
setSelectedDate(data.date);
setView('delivery-list');
const handleFormSubmit = async (data: Parameters<typeof addDelivery>[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);
}
};
@@ -76,6 +94,7 @@ function App() {
onClose={() => setIsFormOpen(false)}
onSubmit={handleFormSubmit}
defaultDate={formDate}
isSubmitting={isSubmitting}
/>
</div>
);