Skip to content

Commit dd14450

Browse files
authored
fix: support filtering match browser (#1281)
1 parent 54325f1 commit dd14450

File tree

1 file changed

+21
-3
lines changed

1 file changed

+21
-3
lines changed

app/Livewire/OverviewMatchesTable.php

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
use App\Livewire\Traits\HasScrimEditor;
66
use App\Models\Game;
77
use App\Models\Overview;
8+
use App\Models\OverviewGametype;
9+
use App\Models\OverviewMap;
10+
use App\Support\Session\OverviewGametypeSession;
811
use App\Support\Session\OverviewMapSession;
912
use Illuminate\View\View;
1013
use Livewire\Component;
@@ -17,15 +20,30 @@ class OverviewMatchesTable extends Component
1720

1821
public Overview $overview;
1922

23+
// @phpstan-ignore-next-line
24+
public $listeners = [
25+
'$refresh',
26+
];
27+
2028
public function render(): View
2129
{
22-
$mapId = OverviewMapSession::get($this->overview);
30+
$overviewMapId = OverviewMapSession::get($this->overview);
31+
$overviewGametypeId = OverviewGametypeSession::get($this->overview);
32+
33+
// The default filter needs to be all maps of this overview
2334
$mapIds = $this->overview->maps->pluck('map_id')->toArray();
2435

36+
/** @var OverviewMap|null $filteredMapId */
37+
$filteredMapId = $this->overview->maps->firstWhere('id', $overviewMapId);
38+
39+
/** @var OverviewGametype|null $filteredGametypeIds */
40+
$filteredGametypeIds = $this->overview->gametypes->firstWhere('id', $overviewGametypeId);
41+
2542
$games = Game::query()
2643
->with(['playlist', 'map', 'category', 'teams'])
27-
->when($mapId === -1, fn ($query) => $query->whereIn('map_id', $mapIds))
28-
->when($mapId !== -1, fn ($query) => $query->where('map_id', $mapId))
44+
->when($overviewMapId === -1, fn ($query) => $query->whereIn('map_id', $mapIds))
45+
->when($overviewMapId !== -1, fn ($query) => $query->where('map_id', $filteredMapId?->map_id))
46+
->when($overviewGametypeId !== -1, fn ($query) => $query->whereIn('gamevariant_id', $filteredGametypeIds?->gamevariant_ids))
2947
->orderByDesc('occurred_at')
3048
->simplePaginate(16);
3149

0 commit comments

Comments
 (0)