fix: restrict agreed/driver_assigned status buttons, show hints instead
This commit is contained in:
parent
0f32d6d73a
commit
a8d54699ff
|
|
@ -821,20 +821,27 @@ export const OrderDetailPanel = ({
|
|||
</div>
|
||||
<div className="flex flex-wrap gap-2">
|
||||
{[
|
||||
{ value: "pending_confirmation", label: "Ожидает согласования" },
|
||||
{ value: "agreed", label: "Согласовано" },
|
||||
{ value: "driver_assigned", label: "Назначен водитель" },
|
||||
{ value: "loaded", label: "Загружено" },
|
||||
{ value: "on_route", label: "В пути" },
|
||||
{ value: "delivered", label: "Доставлено" },
|
||||
{ value: "problem", label: "Проблема" },
|
||||
{ value: "cancelled", label: "Отменено" },
|
||||
].map((statusOption) => (
|
||||
{ value: "pending_confirmation", label: "Ожидает согласования", manual: true },
|
||||
{ value: "agreed", label: "Согласовано", manual: false, hint: "Согласуйте дату доставки выше" },
|
||||
{ value: "driver_assigned", label: "Назначен водитель", manual: false, hint: "Назначьте водителя из списка" },
|
||||
{ value: "loaded", label: "Загружено", manual: true },
|
||||
{ value: "on_route", label: "В пути", manual: true },
|
||||
{ value: "delivered", label: "Доставлено", manual: true },
|
||||
{ value: "problem", label: "Проблема", manual: true },
|
||||
{ value: "cancelled", label: "Отменено", manual: true },
|
||||
].map((statusOption) => {
|
||||
const isCurrent = (order.deliveryStatus || order.delivery_status) === statusOption.value;
|
||||
const isClickable = statusOption.manual !== false && !isCurrent;
|
||||
return (
|
||||
<div key={statusOption.value} className="relative group">
|
||||
<Button
|
||||
key={statusOption.value}
|
||||
variant={
|
||||
(order.deliveryStatus || order.delivery_status) === statusOption.value ? "primary" : "secondary"}
|
||||
variant={isCurrent ? "primary" : "secondary"}
|
||||
onClick={() => {
|
||||
if (!isClickable) {
|
||||
setFormMessage(statusOption.hint || "");
|
||||
return;
|
||||
}
|
||||
setFormMessage("");
|
||||
onChangeDeliveryStatus({
|
||||
orderGroupId: order.id,
|
||||
status: statusOption.value,
|
||||
|
|
@ -850,8 +857,13 @@ export const OrderDetailPanel = ({
|
|||
>
|
||||
{statusOption.label}
|
||||
</Button>
|
||||
))}
|
||||
</div>
|
||||
);
|
||||
})}
|
||||
</div>
|
||||
{formMessage ? (
|
||||
<p className="text-sm text-[var(--color-warning)]">{formMessage}</p>
|
||||
) : null}
|
||||
</Panel>
|
||||
) : null}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue