query(MultilineClient::query()->where('sport_id', auth()->user()->sport_id)) ->paginated(false) ->columns([ IconColumn::make('sport.icon') ->label('') ->width('1rem') ->icon(function ($record): string { return $record->sport->icon; }), TextColumn::make('sport.name'), TextColumn::make('multiline_setting.name')->label('Bettype'), BookmakerIcon::make('bookmaker.icon')->label('Icon'), SelectColumn::make('bookmaker_id') ->label('Bookmaker') ->width('2rem') ->options(function () { $books = Bookmaker::where('is_active', 1)->orderBy('name')->pluck('name', 'id'); foreach ($books as $key => $value) { $books[$key] = $key.' - '.$value; } return $books; }), ]) ->defaultSort('sort') ->deferFilters(false) ->filters([ Filter::make('created_at') ->schema([ Radio::make('multiline_setting_id') ->inline() ->options([ 'draft' => 'Draft', 'scheduled' => 'Scheduled', 'published' => 'Published', ]), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when( $data['multiline_setting_id'], fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date), ); }), // SelectFilter::make('multiline_setting_id') // ->label('Bettype') // ->relationship('multiline_setting', 'name'), ], layout: FiltersLayout::AboveContent) ->hiddenFilterIndicators(); } public function render(): View { return view('livewire.multiline-bookmaker'); } }