Ограничение частоты в Filament
Давайте ограничим частоту действия. Повторный клик не сработает, пока не истечёт пауза между запусками. Смотрим на /admin/posts.
Метод rateLimit у Action
принимает число секунд ожидания
перед следующим вызовом.
В PostsTable.php зададим
лимит для активации:
<?php
namespace App\Filament\Resources\Posts\Tables;
use App\Models\Post;
use Filament\Actions\Action;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class PostsTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('title'),
])
->recordActions([
Action::make('publish')
->rateLimit(5)
->action(function (Post $record): void {
$record->update(['status' => 'published']);
}),
]);
}
}
?>
Сделайте так, чтобы кнопку активации работника нельзя было жать без паузы.