order-buttons: add onComplete button
This commit is contained in:
parent
c5799a7f00
commit
204e3b7581
@ -38,6 +38,12 @@ export function OrderButtons({ documentId }: Readonly<OrderComponentProps>) {
|
||||
}
|
||||
}
|
||||
|
||||
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<OrderComponentProps>) {
|
||||
onCancel={
|
||||
isCancelled || (!isMaster && isCancelling) || isCompleted ? undefined : () => handleCancel()
|
||||
}
|
||||
onComplete={isApproved && isMaster ? handleOnComplete : undefined}
|
||||
onConfirm={
|
||||
!isMaster ||
|
||||
isApproved ||
|
||||
|
||||
@ -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 (
|
||||
<Card className="fixed inset-x-4 bottom-4 z-50 rounded-3xl border-0 bg-background/95 p-4 shadow-2xl backdrop-blur-sm dark:bg-primary/5 md:bottom-6 md:left-auto md:right-6 md:p-6">
|
||||
@ -71,6 +73,19 @@ export default function FloatingActionPanel({
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{/* Кнопка выполнено */}
|
||||
{onComplete && (
|
||||
<Button
|
||||
className="w-full rounded-2xl bg-green-500 text-sm text-white transition-all duration-200 hover:bg-green-600 dark:bg-green-600 dark:hover:bg-green-700 sm:w-auto"
|
||||
disabled={isLoading}
|
||||
onClick={onComplete}
|
||||
size="sm"
|
||||
>
|
||||
<Check className="mr-2 size-4" />
|
||||
<span>Завершить</span>
|
||||
</Button>
|
||||
)}
|
||||
|
||||
{/* Кнопка удалить */}
|
||||
{onDelete && (
|
||||
<Button
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user