.
This commit is contained in:
parent
65c3e1f324
commit
0caf747d4e
@ -2,6 +2,7 @@ import {
|
||||
Button,
|
||||
DropdownMenu,
|
||||
DropdownMenuContent,
|
||||
DropdownMenuGroup,
|
||||
DropdownMenuItem,
|
||||
DropdownMenuSeparator,
|
||||
DropdownMenuTrigger,
|
||||
@ -75,12 +76,10 @@ export const UpdateCommitButtonGroup = ({
|
||||
|
||||
// ⛳️ RHF opcional: auto-detectar isSubmitting si no se pasó isLoading
|
||||
let rhfIsSubmitting = false;
|
||||
try {
|
||||
const ctx = useFormContext();
|
||||
rhfIsSubmitting = !!ctx?.formState?.isSubmitting;
|
||||
} catch {
|
||||
// No hay provider de RHF; ignorar
|
||||
}
|
||||
|
||||
const ctx = useFormContext();
|
||||
rhfIsSubmitting = !!ctx?.formState?.isSubmitting;
|
||||
|
||||
const busy = isLoading ?? rhfIsSubmitting;
|
||||
const computedDisabled = !!(disabled || (preventDoubleSubmit && busy));
|
||||
|
||||
@ -100,53 +99,57 @@ export const UpdateCommitButtonGroup = ({
|
||||
{/* Menú de acciones adicionales */}
|
||||
{hasSecondaryActions && (
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger>
|
||||
<Button className="px-2" disabled={computedDisabled} size="sm" variant="ghost">
|
||||
<MoreHorizontalIcon className="h-4 w-4" />
|
||||
<span className="sr-only">Más acciones</span>
|
||||
</Button>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuTrigger
|
||||
render={
|
||||
<Button className="px-2" disabled={computedDisabled} size="sm" variant="ghost">
|
||||
<MoreHorizontalIcon className="h-4 w-4" />
|
||||
<span className="sr-only">Más acciones</span>
|
||||
</Button>
|
||||
}
|
||||
/>
|
||||
<DropdownMenuContent align="end" className="w-48">
|
||||
{onReset && (
|
||||
<DropdownMenuItem
|
||||
className="text-muted-foreground"
|
||||
disabled={computedDisabled}
|
||||
onClick={onReset}
|
||||
>
|
||||
<RotateCcwIcon className="mr-2 h-4 w-4" />
|
||||
Deshacer cambios
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onPreview && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onPreview}>
|
||||
<EyeIcon className="mr-2 h-4 w-4" />
|
||||
Vista previa
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onDuplicate && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onDuplicate}>
|
||||
<CopyIcon className="mr-2 h-4 w-4" />
|
||||
Duplicar
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onBack && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onBack}>
|
||||
<ArrowLeftIcon className="mr-2 h-4 w-4" />
|
||||
Volver
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onDelete && (
|
||||
<>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuGroup>
|
||||
{onReset && (
|
||||
<DropdownMenuItem
|
||||
className="text-destructive focus:text-destructive"
|
||||
onClick={onDelete}
|
||||
className="text-muted-foreground"
|
||||
disabled={computedDisabled}
|
||||
onClick={onReset}
|
||||
>
|
||||
<Trash2Icon className="mr-2 h-4 w-4" />
|
||||
Eliminar
|
||||
<RotateCcwIcon className="mr-2 h-4 w-4" />
|
||||
Deshacer cambios
|
||||
</DropdownMenuItem>
|
||||
</>
|
||||
)}
|
||||
)}
|
||||
{onPreview && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onPreview}>
|
||||
<EyeIcon className="mr-2 h-4 w-4" />
|
||||
Vista previa
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onDuplicate && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onDuplicate}>
|
||||
<CopyIcon className="mr-2 h-4 w-4" />
|
||||
Duplicar
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onBack && (
|
||||
<DropdownMenuItem className="text-muted-foreground" onClick={onBack}>
|
||||
<ArrowLeftIcon className="mr-2 h-4 w-4" />
|
||||
Volver
|
||||
</DropdownMenuItem>
|
||||
)}
|
||||
{onDelete && (
|
||||
<>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem
|
||||
className="text-destructive focus:text-destructive"
|
||||
onClick={onDelete}
|
||||
>
|
||||
<Trash2Icon className="mr-2 h-4 w-4" />
|
||||
Eliminar
|
||||
</DropdownMenuItem>
|
||||
</>
|
||||
)}
|
||||
</DropdownMenuGroup>
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
)}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user