Feat: Agregar botón de reiniciar formulario
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 55s

- Nuevo botón "Reiniciar" en el footer junto a Cancelar y Guardar
- Solo aparece cuando hay cambios pendientes (v-if="hasChanges")
- Color warning con variant soft para indicar acción destructiva
- Ícono de arrow-path (flecha circular)
- Función resetForm() que:
  - Pide confirmación al usuario
  - Restaura todos los campos a valores originales
  - Limpia la cookie de borrador
  - Muestra toast informativo
- Ubicado entre botones Cancelar y Guardar cambios

El botón permite descartar todos los cambios y volver al estado
original sin tener que recargar la página.
This commit is contained in:
2025-10-17 17:09:36 -06:00
parent e224f385d4
commit 454d98eb97

View File

@@ -267,6 +267,19 @@
> >
Cancelar Cancelar
</UButton> </UButton>
<UButton
v-if="hasChanges"
color="warning"
variant="soft"
size="lg"
@click="resetForm"
:disabled="isSubmitting"
>
<UIcon name="i-heroicons-arrow-path" class="w-5 h-5" />
Reiniciar
</UButton>
<UButton <UButton
color="primary" color="primary"
size="lg" size="lg"
@@ -523,6 +536,36 @@ const handleAvatarCapture = async (imageBlob: Blob) => {
} }
} }
// Reiniciar formulario a valores originales
const resetForm = () => {
if (!confirm('¿Estás seguro de descartar todos los cambios?\n\nSe restaurarán los valores originales y se eliminará el borrador guardado.')) {
return
}
// Restaurar valores originales
formData.value = {
name: originalData.value.name,
email: originalData.value.email,
avatar: originalData.value.avatar,
phone: originalData.value.phone,
cedula: originalData.value.cedula,
birthdate: originalData.value.birthdate,
nfc: originalData.value.nfc,
pin: originalData.value.pin,
nucleoCode: originalData.value.nucleoCode
}
// Limpiar cookie de borrador
formCookie.value = {}
toast.add({
title: 'Formulario reiniciado',
description: 'Se restauraron los valores originales y se eliminó el borrador',
color: 'info',
icon: 'i-heroicons-arrow-path'
})
}
// Eliminar avatar personalizado // Eliminar avatar personalizado
const removeAvatar = async () => { const removeAvatar = async () => {
if (!confirm('¿Estás seguro de que quieres eliminar tu foto de perfil?')) { if (!confirm('¿Estás seguro de que quieres eliminar tu foto de perfil?')) {