fix: tab-aware agreed banner — show delivery form when switching tabs, not stale pickup banner

This commit is contained in:
root 2026-06-12 13:25:29 +00:00
parent fb5728ba43
commit 1cab6c886e
1 changed files with 8 additions and 2 deletions

View File

@ -654,6 +654,12 @@ export const OrderDetailPanel = ({
}
const isDeliveryAgreed = ["agreed", "driver_assigned", "loaded", "on_route", "delivered"].includes(order.deliveryStatus || order.delivery_status);
const isPickupOrder = order.deliveryType === "pickup" || order.deliveryStatus === "pickup" || order.delivery_status === "pickup";
// Show "agreed" banner only when selected tab matches the already-agreed type
const agreedTypeMatchesTab = isDeliveryAgreed && !isEditingDate && (
(deliveryType === "pickup" && isPickupOrder)
|| (deliveryType === "delivery" && !isPickupOrder)
);
const canEditDelivery = canManageDelivery && ["admin", "mega_admin", "logistician"].includes(userRole);
const [isEditingDate, setIsEditingDate] = React.useState(false);
const agreedDeliveryLabel = [
@ -938,13 +944,13 @@ export const OrderDetailPanel = ({
/>
</div>
)}
{isDeliveryAgreed && !isEditingDate ? (
{agreedTypeMatchesTab ? (
<div className="space-y-3">
<div className="rounded-[24px] border border-[rgba(18,128,92,0.35)] bg-[var(--color-accent-soft)] p-4 !text-[var(--color-text)]">
<div className="flex flex-wrap items-center justify-between gap-3">
<div>
<p className="text-xs font-semibold uppercase tracking-[0.14em] text-[var(--color-accent)]">
{(order.deliveryType === "pickup" || order.deliveryStatus === "pickup" || order.delivery_status === "pickup") ? "Самовывоз согласован" : "Доставка согласована"}
{deliveryType === "pickup" ? "Самовывоз согласован" : "Доставка согласована"}
</p>
<p className="mt-1 text-lg font-semibold">
{agreedDeliveryLabel || "Дата и время сохранены"}