import React from "react"; import { filterOrderGroups, getOrderGroupDisplayStatusLabel, getOrderGroupDisplayStatusValue, getOrderGroupStatusTone, ORDER_GROUP_DISPLAY_STATUS_OPTIONS, } from "../../services/orderGroupViews"; import { Badge } from "../UI/Badge"; import { Panel } from "../UI/Panel"; import { OrderFilters } from "../orders/OrderFilters"; const renderOrderNumbers = (group) => { if (!Array.isArray(group.orderNumbers) || !group.orderNumbers.length) { return Номера не указаны; } return (
{group.orderNumbers.map((number) => ( {number} ))}
); }; export const LogisticsReadinessBoard = ({ orderGroups = [], onSelectSet, statusOptions = ORDER_GROUP_DISPLAY_STATUS_OPTIONS }) => { const [filters, setFilters] = React.useState({ query: "", displayStatus: "all" }); const filteredGroups = React.useMemo( () => filterOrderGroups(orderGroups, filters), [filters, orderGroups], ); // Group by display status value const statusGroups = React.useMemo(() => { const map = new Map(); for (const group of filteredGroups) { const statusValue = getOrderGroupDisplayStatusValue(group); if (!map.has(statusValue)) { const label = getOrderGroupDisplayStatusLabel(group); map.set(statusValue, { label, groups: [] }); } map.get(statusValue).groups.push(group); } return map; }, [filteredGroups]); const totalGroups = filteredGroups.length; return (

Наборы доставки

{totalGroups} групп
{!totalGroups ? (
По этому поиску ничего не найдено.
) : (
{Array.from(statusGroups.entries()).map(([statusValue, { label, groups }]) => { if (!groups.length) return null; return (

{label}

{groups.length}
{groups.map((group) => ( ))}
); })}
)}
); };