diff --git a/src/components/driver/DriverDeliveryPlanner.jsx b/src/components/driver/DriverDeliveryPlanner.jsx index 2ba9b1d..afd595b 100644 --- a/src/components/driver/DriverDeliveryPlanner.jsx +++ b/src/components/driver/DriverDeliveryPlanner.jsx @@ -347,7 +347,7 @@ export const DriverDeliveryPlanner = ({ orderGroups = [], onOpenOrder, currentUs statusBuckets.get(s).items.push(item); } - const statusOrder = ["driver_assigned", "loaded", "on_route", "delivered", "picked_up", "problem"]; + const statusOrder = ["agreed", "driver_assigned", "loaded", "on_route", "delivered", "picked_up", "paid_storage", "problem"]; const sortedBuckets = Array.from(statusBuckets.entries()).sort(([a], [b]) => { const ia = statusOrder.indexOf(a); const ib = statusOrder.indexOf(b); diff --git a/src/pages/DashboardPage.jsx b/src/pages/DashboardPage.jsx index e542ab8..e49f4e9 100644 --- a/src/pages/DashboardPage.jsx +++ b/src/pages/DashboardPage.jsx @@ -7,6 +7,7 @@ import React from "react"; import { Navigate, useNavigate, useSearchParams, useLocation } from "react-router-dom"; import { DriverDeliveryPlanner } from "../components/driver/DriverDeliveryPlanner"; +import { isOrderGroupVisibleToDriver } from "../services/orderGroupViews"; import { LogisticsReadinessBoard } from "../components/logistics/LogisticsReadinessBoard"; import { OrdersTable } from "../components/orders/OrdersTable"; import { AdminDashboard } from "../components/admin/AdminDashboard"; @@ -108,6 +109,16 @@ export const DashboardPage = () => { return [...set].sort(); }, [allOrderGroups]); + // ── Driver order count (for badge) ──────────────────────────────────────── + const driverOrderCount = React.useMemo(() => { + if (userRole !== "driver" || !user) return 0; + return allOrderGroups.filter((g) => { + const isVisible = isOrderGroupVisibleToDriver(g); + const isAssignedToMe = g.assignedDriverId === user.id; + return isVisible && isAssignedToMe; + }).length; + }, [allOrderGroups, user, userRole]); + // ── Navigation Builder ──────────────────────────────────────────────────── const openGroupPage = React.useCallback((groupId) => { navigate("/dashboard/group/" + groupId); @@ -130,7 +141,7 @@ export const DashboardPage = () => { { key: "logistics", label: "Логистика", description: "Группы доставки по готовности к уведомлению.", badge: String(allOrderGroups.length || orderGroups.length || 0) }, ] : [ - { key: section.key, label: section.label, description: section.description, badge: String(allOrderGroups.length || orderGroups.length || 0) }, + { key: section.key, label: section.label, description: section.description, badge: String(userRole === "driver" ? driverOrderCount : (allOrderGroups.length || orderGroups.length || 0)) }, { key: "suggestions", label: "Предложения", description: "Предложить улучшение.", badge: null }, ]; diff --git a/src/services/orderGroupViews.js b/src/services/orderGroupViews.js index e489a91..ea37658 100644 --- a/src/services/orderGroupViews.js +++ b/src/services/orderGroupViews.js @@ -29,12 +29,14 @@ export const NOTIFICATION_STATUS_LABELS = { }; export const DRIVER_VISIBLE_DELIVERY_STATUSES = [ + "agreed", "driver_assigned", "loaded", "on_route", "problem", "delivered", "picked_up", + "paid_storage", ]; export const DRIVER_ACTIVE_DELIVERY_STATUSES = ["driver_assigned", "loaded", "on_route", "problem"];