Guías1 min de lectura

Cómo limitar clics en botones Livewire con Filament v3

Ismael Santiago·7 de julio de 2025
Cómo limitar clics en botones Livewire con Filament v3

Si usas Filament v3 y quieres evitar que un botón se dispare mil veces por minuto, te muestro cómo limitarlo en 2 pasos.

Instala el paquete

Abre tu terminal y ejecuta:

composer require danharrin/livewire-rate-limiting

Este paquete es mantenido por el creador de Filament y funciona perfecto con cualquier componente Livewire.

Aplícalo en tu método

Supongamos que tienes una página personalizada y quieres limitar un método llamado generarInforme. Añade el trait WithRateLimiting:

<?php
use DanHarrin\LivewireRateLimiting\WithRateLimiting;
use DanHarrin\LivewireRateLimiting\Exceptions\TooManyRequestsException;
use Filament\Notifications\Notification;
 
class GenerarInforme extends Page
{
    use WithRateLimiting;
 
    public function generarInforme(): void
    {
        try {
            $this->rateLimit(3); // máximo 3 veces por minuto
        } catch (TooManyRequestsException $e) {
            Notification::make()
                ->title('Demasiados intentos')
                ->body("Espera {$e->secondsUntilAvailable} segundos.")
                ->danger()
                ->send();
            return;
        }
    }
}

¿Te ha resultado útil? Compártelo.

¿Tu operación vive en Excel y WhatsApp?

En 20 minutos te decimos si podemos ayudarte, cómo lo haríamos y cuánto costaría.