| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 | <?php
namespace App\Concerns;
use Filament\Notifications\Notification;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
trait NotifiesOnDelete
{
    public static function notifyBeforeDelete(Model $record, string $reason): void
    {
        $reason = translate($reason);
        Notification::make()
            ->danger()
            ->title(translate('Action denied'))
            ->body(translate(':Name cannot be deleted because it is :reason. Please update settings before deletion.', [
                'Name' => $record->getAttribute('name'),
                'reason' => $reason,
            ]))
            ->persistent()
            ->send();
    }
    public static function notifyBeforeDeleteMultiple(Collection $records, string $reason): void
    {
        $reason = translate($reason);
        $namesList = implode('<br>', array_map(static function ($record) {
            return '• ' . $record->getAttribute('name');
        }, $records->all()));
        $message = translate('The following items cannot be deleted because they are :reason. Please update settings before deletion.', compact('reason')) . '<br><br>';
        $message .= $namesList;
        Notification::make()
            ->danger()
            ->title(translate('Action denied'))
            ->body($message)
            ->persistent()
            ->send();
    }
}
 |