import React from "react";
import { getAvailableTransitionsByRole, getDeliveryAgreementComment, getOrderStatusComment, getStatusTone } from "../../constants/deliveryWorkflow";
import { demoUsers } from "../../data/mockAppData";
import { formatDateTime } from "../../utils/formatters";
import { Badge } from "../UI/Badge";
import { Button } from "../UI/Button";
import { Panel } from "../UI/Panel";
const getUsers = (users) => (Array.isArray(users) && users.length ? users : demoUsers);
const resolveUserName = (users, userId) => getUsers(users).find((user) => user.id === userId)?.name || "Не назначен";
const splitItem = (item) => {
if (!item) {
return { name: "Позиция", quantity: "" };
}
if (typeof item === "string") {
const [name, quantity] = item.split("|").map((part) => part.trim());
return {
name: name || item,
quantity: quantity || "",
};
}
if (typeof item === "object") {
return {
name: item.name || item.label || "Позиция",
quantity: typeof item.quantity === "number" ? String(item.quantity) : item.quantity || "",
};
}
return { name: "Позиция", quantity: "" };
};
export const OrderDetailPanel = ({ order, users, currentUser, onStatusChange, onAssignDriver }) => {
if (!order) {
return (
Выберите заказ для просмотра деталей.
Карточка заказа
{order.customer.name} · {order.customer.address}
{getOrderStatusComment(order.status)}
Менеджер
{resolveUserName(users, order.managerId)}
Логист
{resolveUserName(users, order.logisticianIds?.[0])}
Водитель
{resolveUserName(users, order.assignedDriverId)}
Дата создания
{formatDateTime(order.createdAt)}
План доставки
{formatDateTime(order.scheduledDelivery)}
Канал связи
{order.customer.messenger}
Согласование доставки
{order.deliveryAgreementStatus}
{getDeliveryAgreementComment(order.deliveryAgreementStatus)}
Клиент
{order.customer.name}
Телефон
{order.customer.phone}
Адрес
{order.customer.address}
Дата доставки
{formatDateTime(order.scheduledDelivery)}
Состав заказа не указан.
)}