From 8377c25173d6ae0c9ccbe2ab421ba67c5ee78f70 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Sun, 9 Aug 2026 23:40:45 +0700 Subject: [PATCH] feat: enhance DeleteConfirmDialog with loading state and confirm handler --- .../dialogs/delete-confirm-dialog.tsx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/resources/js/components/dialogs/delete-confirm-dialog.tsx b/resources/js/components/dialogs/delete-confirm-dialog.tsx index 004302f..945d01e 100644 --- a/resources/js/components/dialogs/delete-confirm-dialog.tsx +++ b/resources/js/components/dialogs/delete-confirm-dialog.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react'; import { ConfirmDialog } from '@/components/dialogs'; type DeleteConfirmDialogProps = { @@ -19,10 +20,22 @@ export function DeleteConfirmDialog({ variant, onConfirm, }: DeleteConfirmDialogProps) { + const [loading, setLoading] = useState(false); + + function handleConfirm() { + setLoading(true); + onConfirm(); + } + return ( { + if (!open) { + setLoading(false); + } + onOpenChange(open); + }} title={title} description={ typeof description === 'function' && target @@ -33,7 +46,8 @@ export function DeleteConfirmDialog({ } confirmLabel={confirmLabel} variant={variant} - onConfirm={onConfirm} + onConfirm={handleConfirm} + loading={loading} /> ); }