'$refresh', ]; public static function configure(Table $table): Table { return $table // ->poll('10s') ->striped() ->columns([ IconColumn::make('sport.icon') ->label('') ->width('1rem') ->size(IconSize::ExtraLarge) ->icon(fn ($record) => $record->sport->icon) ->tooltip(fn ($record) => $record->id), TextColumn::make('txodds_id')->label('Match Id')->badge()->copyable(), TextColumn::make('starttime') ->label('Start') ->alignCenter() ->dateTime('d.m') ->weight(FontWeight::Bold) ->description(fn ($state): string => Carbon::createFromDate($state)->format('H:i')), TextColumn::make('country.name') ->color('gray') ->label('Event') ->icon(fn ($record) => $record->country->icon) ->description(fn ($record) => $record->competition_group->name), TextColumn::make('home.name')->alignRight()->searchable(), TextColumn::make('away.name')->searchable(), Odds3Way::make('odds_3way.bookmaker')->label('1X2'), ]) ->defaultSort('starttime', 'ASC') ->deferFilters(false) ->filters([ Filter::make('event') ->form([ Select::make('sport_id') ->label('Sport') ->default(1) ->options(function () { $sports = Client::where('id', auth()->user()->client_id)->pluck('sport')->first(); return Sport::query()->whereIn('id', $sports)->pluck('name', 'id'); }) ->afterStateUpdated(function ($state) { User::where('id', auth()->user()->id)->update(['sport_id' => $state]); }), Select::make('competition_group_id') ->label('League') ->default(1) ->options(function (Get $get) { return CompetitionGroup::where('sport_id', $get('sport_id'))->pluck('name', 'id'); }) ->live(), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when( $data['sport_id'], fn (Builder $query, $sport_id) => $query->where('sport_id', $sport_id) )->when( $data['competition_group_id'], fn (Builder $query, $competition_group_id) => $query->where('competition_group_id', $competition_group_id) ); }) ->columns(3)->columnSpan(3), ], layout: FiltersLayout::AboveContent) ->hiddenFilterIndicators(false) ->persistFiltersInSession() ->recordActions([ // EditAction::make(), DeleteAction::make()->iconButton(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } }