From 204e3b75814fefbcb1fcd56670ecd2d073214b1a Mon Sep 17 00:00:00 2001 From: vchikalkin Date: Fri, 27 Jun 2025 14:19:58 +0300 Subject: [PATCH] order-buttons: add onComplete button --- apps/web/components/orders/order-buttons.tsx | 7 +++++++ apps/web/components/shared/action-panel.tsx | 17 ++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/apps/web/components/orders/order-buttons.tsx b/apps/web/components/orders/order-buttons.tsx index 61688cc..66fcf79 100644 --- a/apps/web/components/orders/order-buttons.tsx +++ b/apps/web/components/orders/order-buttons.tsx @@ -38,6 +38,12 @@ export function OrderButtons({ documentId }: Readonly) { } } + function handleOnComplete() { + if (isMaster) { + updateSlot({ data: { state: Enum_Order_State.Completed } }); + } + } + function handleOnRepeat() { push('/orders/add', order); } @@ -48,6 +54,7 @@ export function OrderButtons({ documentId }: Readonly) { onCancel={ isCancelled || (!isMaster && isCancelling) || isCompleted ? undefined : () => handleCancel() } + onComplete={isApproved && isMaster ? handleOnComplete : undefined} onConfirm={ !isMaster || isApproved || diff --git a/apps/web/components/shared/action-panel.tsx b/apps/web/components/shared/action-panel.tsx index c57db51..807ff9c 100644 --- a/apps/web/components/shared/action-panel.tsx +++ b/apps/web/components/shared/action-panel.tsx @@ -8,6 +8,7 @@ type FloatingActionPanelProps = { readonly isLoading?: boolean; readonly isOpen?: boolean; readonly onCancel?: () => void; + readonly onComplete?: () => void; readonly onConfirm?: () => void; readonly onDelete?: () => void; readonly onRepeat?: () => void; @@ -18,13 +19,14 @@ export default function FloatingActionPanel({ isLoading = false, isOpen, onCancel, + onComplete, onConfirm, onDelete, onRepeat, onToggle, }: FloatingActionPanelProps) { // Если не переданы обработчики, скрываем панель - if (!onCancel && !onConfirm && !onDelete && !onRepeat && !onToggle) return null; + if (!onCancel && !onConfirm && !onDelete && !onComplete && !onRepeat && !onToggle) return null; return ( @@ -71,6 +73,19 @@ export default function FloatingActionPanel({ )} + {/* Кнопка выполнено */} + {onComplete && ( + + )} + {/* Кнопка удалить */} {onDelete && (