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 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 canEditDelivery = canManageDelivery && ["admin", "mega_admin", "logistician"].includes(userRole);
const [isEditingDate, setIsEditingDate] = React.useState(false); const [isEditingDate, setIsEditingDate] = React.useState(false);
const agreedDeliveryLabel = [ const agreedDeliveryLabel = [
@ -938,13 +944,13 @@ export const OrderDetailPanel = ({
/> />
</div> </div>
)} )}
{isDeliveryAgreed && !isEditingDate ? ( {agreedTypeMatchesTab ? (
<div className="space-y-3"> <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="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 className="flex flex-wrap items-center justify-between gap-3">
<div> <div>
<p className="text-xs font-semibold uppercase tracking-[0.14em] text-[var(--color-accent)]"> <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>
<p className="mt-1 text-lg font-semibold"> <p className="mt-1 text-lg font-semibold">
{agreedDeliveryLabel || "Дата и время сохранены"} {agreedDeliveryLabel || "Дата и время сохранены"}