diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 669a7ed2f1b..c6d72a8c786 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -176,7 +176,7 @@ public function extraPages($_id, $page) 'replays_watched_counts' => json_collection($this->user->replaysWatchedCounts, new UserReplaysWatchedCountTransformer()), 'score_replay_stats' => $this->getExtraSection( 'scoreReplayStats', - $this->user->scoreReplayStats()->whereHas('score.beatmap')->countLimit($this->maxResults), + $this->user->scoreReplayStats()->countLimit($this->maxResults), ), ]; @@ -853,7 +853,6 @@ private function getExtra($page, array $options, int $perPage = 10, int $offset $transformer = new ScoreReplayStatsTransformer(); $includes = ScoreReplayStatsTransformer::USER_PROFILE_INCLUDES; $query = $this->user->scoreReplayStats() - ->whereHas('score.beatmap') ->orderByDesc('watch_count') ->with(ScoreReplayStatsTransformer::USER_PROFILE_INCLUDES_PRELOAD); break; diff --git a/app/Transformers/ScoreReplayStatsTransformer.php b/app/Transformers/ScoreReplayStatsTransformer.php index 5bb4d08aa38..fb3b123b7dd 100644 --- a/app/Transformers/ScoreReplayStatsTransformer.php +++ b/app/Transformers/ScoreReplayStatsTransformer.php @@ -30,6 +30,8 @@ public function transform(ScoreReplayStats $stats): array public function includeScore(ScoreReplayStats $stats): ResourceInterface { - return $this->item($stats->score, new ScoreTransformer()); + return $stats->score !== null + ? $this->item($stats->score, new ScoreTransformer()) + : $this->null(); } } diff --git a/resources/js/interfaces/score-replay-stats-json.ts b/resources/js/interfaces/score-replay-stats-json.ts index 1ee09dd9e5c..0837b1df3b6 100644 --- a/resources/js/interfaces/score-replay-stats-json.ts +++ b/resources/js/interfaces/score-replay-stats-json.ts @@ -4,7 +4,7 @@ import ScoreJson, { ScoreJsonForUser } from './score-json'; interface ScoreReplayStatsJsonAvailableIncludes { - score: ScoreJson; + score: ScoreJson|null; } interface ScoreReplayStatsJsonDefaultAttributes { @@ -16,4 +16,4 @@ type ScoreReplayStatsJson = ScoreReplayStatsJsonDefaultAttributes & Partial