import React from "react"; import { filterOrderGroups, getOrderGroupDeliveryHalfDay, getOrderGroupDeliveryStatusLabel, getOrderGroupDeliveryStatusTone, ORDER_GROUP_DELIVERY_HALF_DAY_OPTIONS, DRIVER_VISIBLE_DELIVERY_STATUSES, isOrderGroupVisibleToDriver, groupOrderGroupsByDate, } from "../../services/orderGroupViews"; import { Badge } from "../UI/Badge"; import { Input } from "../UI/Input"; import { Select } from "../UI/Select"; import { Panel } from "../UI/Panel"; const DRIVER_DELIVERY_STATUS_OPTIONS = [ { value: "all", label: "Все статусы" }, ...DRIVER_VISIBLE_DELIVERY_STATUSES.map((status) => ({ value: status, label: getOrderGroupDeliveryStatusLabel(status), })), ]; export const DriverDeliveryPlanner = ({ orderGroups = [], onOpenOrder }) => { const [filters, setFilters] = React.useState({ dateFrom: "", dateTo: "", deliveryHalfDay: "all", deliveryStatus: "all", }); const agreedOrderGroups = React.useMemo( () => orderGroups.filter((group) => isOrderGroupVisibleToDriver(group)), [orderGroups], ); const filteredOrderGroups = React.useMemo( () => filterOrderGroups(agreedOrderGroups, { dateFrom: filters.dateFrom, dateTo: filters.dateTo, deliveryHalfDay: filters.deliveryHalfDay, deliveryStatus: filters.deliveryStatus, }), [agreedOrderGroups, filters.dateFrom, filters.dateTo, filters.deliveryHalfDay, filters.deliveryStatus], ); const groupedOrderGroups = React.useMemo( () => groupOrderGroupsByDate(filteredOrderGroups), [filteredOrderGroups], ); return (
Показываем только согласованные к доставке группы. Можно сузить список по дате и половине дня.
{group.items.length} {group.items.length === 1 ? "группа" : "группы"}
Сейчас у вас нет назначенных групп доставки.