resources/views/pages/frontend/docs/sistema-notificaciones-toast.md
Última modificación: 24 Oct, 2026

Sistema de Alertas & Toasts Reactivos

El sistema de notificaciones de Mañuti centraliza los mensajes de sesión, errores de validación y eventos en tiempo real mediante un despachador unificado en resources/views/partials/toast.blade.php, desacoplado de librerías estáticas mediante SweetAlert2 y KTToast.


1. API Fluida de Controladores

Los controladores invocan notificaciones mediante métodos estándar de sesión flash:

// Notificación de Éxito
return back()->with('status', 'Registro actualizado con éxito.');

// Notificación de Advertencia
return back()->with('warning', 'La contraseña caducará en 3 días.');

// Notificación de Error Crítico
return back()->with('error', 'No fue posible conectar con el nodo de base de datos.');

// Notificación Personalizada con Variante Dinámica
return back()->with(['mensaje' => 'Sincronización completada', 'variant' => 'primary']);

2. El Despachador Universal (partials/toast.blade.php)

Se incluye globalmente al pie del layout maestro y procesa todas las señales del framework:

document.addEventListener('DOMContentLoaded', function () {
    const Toast = Swal.mixin({
        toast: true,
        position: 'top-end',
        showConfirmButton: false,
        timer: 4000,
        timerProgressBar: true,
        width: '350px',
        showClass: { popup: 'animate__animated animate__fadeInRight' },
        hideClass: { popup: 'animate__animated animate__fadeOutRight' }
    });

    @if (session('status') || session('success'))
        Toast.fire({ icon: 'success', title: "{{ session('status') ?? session('success') }}" });
    @endif

    @if (session('warning'))
        Toast.fire({ icon: 'warning', title: "{{ session('warning') }}" });
    @endif

    @if (session('error'))
        Toast.fire({ icon: 'error', title: "{{ session('error') }}" });
    @endif

    @if ($errors->any())
        Toast.fire({
            icon: 'error',
            title: 'Errores en el formulario',
            html: '<div style="text-align: left; font-size: 0.85em;">' +
                  '@foreach ($errors->all() as $error) <span>• {{ $error }}</span><br> @endforeach' +
                  '</div>'
        });
    @endif
});

Enlaces Relacionados

Edita este documento en >> sistema-notificaciones-toast.md
← Volver a la Landing Page