45 lines
1.4 KiB
PHP
45 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use App\Filament\Tables\Columns\BookmakerIcon;
|
|
use App\Models\PersonalNotification;
|
|
use Filament\Actions\Concerns\InteractsWithActions;
|
|
use Filament\Actions\Contracts\HasActions;
|
|
use Filament\Schemas\Concerns\InteractsWithSchemas;
|
|
use Filament\Schemas\Contracts\HasSchemas;
|
|
use Filament\Tables\Columns\IconColumn;
|
|
use Filament\Tables\Columns\TextColumn;
|
|
use Filament\Tables\Concerns\InteractsWithTable;
|
|
use Filament\Tables\Contracts\HasTable;
|
|
use Filament\Tables\Table;
|
|
use Illuminate\Contracts\View\View;
|
|
use Livewire\Component;
|
|
|
|
class PersonalNotificationTable extends Component implements HasActions, HasSchemas, HasTable
|
|
{
|
|
use InteractsWithActions;
|
|
use InteractsWithSchemas;
|
|
use InteractsWithTable;
|
|
|
|
public function table(Table $table): Table
|
|
{
|
|
return $table
|
|
->query(PersonalNotification::query()->with('bookmaker')->where('user_id', auth()->user()->id))
|
|
->columns([
|
|
IconColumn::make('sport.icon')
|
|
->label('')
|
|
->icon(fn ($record) => $record->sport->icon)
|
|
->tooltip(fn ($record) => $record->id),
|
|
TextColumn::make('sport.name'),
|
|
BookmakerIcon::make('bookmaker.icon')->label('Icon')->size('lg'),
|
|
]);
|
|
|
|
}
|
|
|
|
public function render(): View
|
|
{
|
|
return view('livewire.personal-notification-table');
|
|
}
|
|
}
|