From d199421be3067ed02d2dd8e472f77e39fedae8dc Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 19:49:35 +0200 Subject: [PATCH 01/14] add statistics Feature Flag --- app/Enums/FeatureFlag.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/Enums/FeatureFlag.php b/app/Enums/FeatureFlag.php index 5d1f5fc8..dcdb9c4d 100644 --- a/app/Enums/FeatureFlag.php +++ b/app/Enums/FeatureFlag.php @@ -41,6 +41,9 @@ enum FeatureFlag: string implements HasLabel #[DefaultFeatureFlagState(true)] case UserSettings = 'user_settings'; + #[DefaultFeatureFlagState(true)] + case UserStatistics = 'user_statistics'; + #[Description('Toggles the user navigation/dropdown in the top navigation, this is only a visual change and does NOT disable the features shown in that dropdown.')] #[DefaultFeatureFlagState(true)] case UserNavigation = 'user_navigation'; From d90529141d1770282e14b1d07fe30474fdf098f3 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 19:58:29 +0200 Subject: [PATCH 02/14] added statistiks routes --- routes/statistics.php | 19 +++++++++++++++++++ routes/web.php | 1 + 2 files changed, 20 insertions(+) create mode 100644 routes/statistics.php diff --git a/routes/statistics.php b/routes/statistics.php new file mode 100644 index 00000000..90599c49 --- /dev/null +++ b/routes/statistics.php @@ -0,0 +1,19 @@ +prefix('statistics') + ->name('user.statistics') + ->group(function () { + Route::get('/', StatisticsController::class); + Route::get('/votes', VotesController::class)->name('.votes'); + Route::post('/votes', [ClipVoteController::class, 'update'])->name('.votes'); + }); diff --git a/routes/web.php b/routes/web.php index a36a505b..d7e92847 100644 --- a/routes/web.php +++ b/routes/web.php @@ -45,4 +45,5 @@ }); require __DIR__.'/settings.php'; +require __DIR__.'/statistics.php'; require __DIR__.'/auth.php'; From 5ee72747f3cbb636184dc062acce5723cb160ca5 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 19:59:13 +0200 Subject: [PATCH 03/14] added card variants --- resources/views/components/ui/card.blade.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/views/components/ui/card.blade.php b/resources/views/components/ui/card.blade.php index be555a72..15db27b3 100644 --- a/resources/views/components/ui/card.blade.php +++ b/resources/views/components/ui/card.blade.php @@ -1,6 +1,17 @@ +@props(['variant' => 'default']) +@php + static $cardBaseClass = 'flex flex-col rounded-xl border shadow-sm py-2 md:py-4 xl:py-6'; + + static $cardVariants = [ + 'default' => 'bg-card text-card-foreground', + 'glass' => 'border-gray-200 bg-linear-to-br from-white/70 via-white/85 to-white/70 shadow-xl shadow-black/10 ring-black/5 dark:border-white/20 dark:bg-black/30 dark:bg-none dark:ring-0 dark:shadow-purple-900/30', + 'glassNoShadow' => 'border-gray-200 bg-linear-to-br from-white/70 via-white/85 to-white/70 ring-black/5 dark:border-white/20 dark:bg-black/30 dark:bg-none dark:ring-0' + ]; +@endphp +
twMerge('bg-card text-card-foreground flex flex-col rounded-xl border shadow-sm py-2 md:py-4 xl:py-6') }} + {{ $attributes->twMerge($cardBaseClass,$cardVariants[$variant ?? 'default'] ?? $cardVariants['default']) }} > {{ $slot }}
From e4599c6deac9da4823fca1da56800d2d52ddaff9 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 19:59:28 +0200 Subject: [PATCH 04/14] added statistic controller --- app/Http/Controllers/StatisticsController.php | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 app/Http/Controllers/StatisticsController.php diff --git a/app/Http/Controllers/StatisticsController.php b/app/Http/Controllers/StatisticsController.php new file mode 100644 index 00000000..9fd6908a --- /dev/null +++ b/app/Http/Controllers/StatisticsController.php @@ -0,0 +1,49 @@ +user(); + + $cacheKey = "user.{$user->id}.statistics"; + $clipsSubmitted = Cache::remember( + $cacheKey.'.clipsSubmitted', + now()->addMinute(), + fn () => $user + ->submittedClips() + ->count() + ); + + $votes = Cache::remember( + $cacheKey.'.votes', + now()->addMinute(), + fn () => $user + ->votes() + ->count() + ); + $votes30Days = Cache::remember( + $cacheKey.'.votes30Days', + now()->addMinute(), + fn () => $user + ->votes() + ->where('created_at', '>=', now()->sub(CarbonInterval::fromString(('30 days')))) + ->count() + ); + + return view('statistics', [ + 'clipsSubmitted' => $clipsSubmitted, + 'votes' => $votes, + 'votes30Days' => $votes30Days, + ]); + } +} From 25197f8de52ddf8f05633ce7c206304a23544c81 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:00:07 +0200 Subject: [PATCH 05/14] added statistics vote page --- .../infinite-loader/error-loading.blade.php | 6 ++ .../infinite-loader/loading.blade.php | 5 + .../infinite-loader/no-more.blade.php | 4 + .../infinite-loader/nothing-found.blade.php | 10 ++ .../components/statistics/vote-list.blade.php | 91 +++++++++++++++++ resources/views/statistics/votes.blade.php | 99 +++++++++++++++++++ 6 files changed, 215 insertions(+) create mode 100644 resources/views/components/statistics/infinite-loader/error-loading.blade.php create mode 100644 resources/views/components/statistics/infinite-loader/loading.blade.php create mode 100644 resources/views/components/statistics/infinite-loader/no-more.blade.php create mode 100644 resources/views/components/statistics/infinite-loader/nothing-found.blade.php create mode 100644 resources/views/components/statistics/vote-list.blade.php create mode 100644 resources/views/statistics/votes.blade.php diff --git a/resources/views/components/statistics/infinite-loader/error-loading.blade.php b/resources/views/components/statistics/infinite-loader/error-loading.blade.php new file mode 100644 index 00000000..4adc6d58 --- /dev/null +++ b/resources/views/components/statistics/infinite-loader/error-loading.blade.php @@ -0,0 +1,6 @@ +@props(['name' => 'Clips']) + diff --git a/resources/views/components/statistics/infinite-loader/loading.blade.php b/resources/views/components/statistics/infinite-loader/loading.blade.php new file mode 100644 index 00000000..e631215d --- /dev/null +++ b/resources/views/components/statistics/infinite-loader/loading.blade.php @@ -0,0 +1,5 @@ + diff --git a/resources/views/components/statistics/infinite-loader/no-more.blade.php b/resources/views/components/statistics/infinite-loader/no-more.blade.php new file mode 100644 index 00000000..12bbf897 --- /dev/null +++ b/resources/views/components/statistics/infinite-loader/no-more.blade.php @@ -0,0 +1,4 @@ +@props(['name' => 'Clips']) +
+

{{ __('user.statistics_details.infinite-loader.no-more',['name' => $name]) }}

+
diff --git a/resources/views/components/statistics/infinite-loader/nothing-found.blade.php b/resources/views/components/statistics/infinite-loader/nothing-found.blade.php new file mode 100644 index 00000000..fbb49c63 --- /dev/null +++ b/resources/views/components/statistics/infinite-loader/nothing-found.blade.php @@ -0,0 +1,10 @@ +@props(['name' => 'Clips']) +
+ +

+ {{ __('user.statistics_details.infinite-loader.nothing-found',['name' => $name]) }} +

+

+ {{ __('user.statistics_details.infinite-loader.nothing-found-subtext',['name' => $name]) }} +

+
diff --git a/resources/views/components/statistics/vote-list.blade.php b/resources/views/components/statistics/vote-list.blade.php new file mode 100644 index 00000000..664edeaa --- /dev/null +++ b/resources/views/components/statistics/vote-list.blade.php @@ -0,0 +1,91 @@ +@props(['allowedVoteToChange' => null, 'votes' => []]) +@foreach($votes as $vote) + @php + $allowVoteTochange = $allowedVoteToChange && $vote->id === $allowedVoteToChange->id; + @endphp + + @if ($allowVoteTochange) +
+ + + @endif + + + + + + +
+ +
+
+
+ + + {{ __('clips.vote.form.fields.vote.label') }} + + + + + {{ __('clips.vote.form.fields.skip.label') }} + +
+
+
+ + +
+ +
+ + + {{ $vote->created_at->diffForHumans() }} + + + {{ $vote->created_at->format('d.m.Y H:i:s') }} + + + +
+
+ +
+ + @if ($allowVoteTochange) + + @error('voteId') {{ $message }} @enderror + + + {{ session('error') }} + + @endif + +
+
+ + @if ($allowVoteTochange) +
+ @endif +@endforeach diff --git a/resources/views/statistics/votes.blade.php b/resources/views/statistics/votes.blade.php new file mode 100644 index 00000000..9e39627a --- /dev/null +++ b/resources/views/statistics/votes.blade.php @@ -0,0 +1,99 @@ + + +
+ + + +

{{ __('user.statistics_details.votes.heading') }}

+
+
+ + +
+

+ {{ __('user.statistics_details.votes.subheading') }} +

+

+ {{ __('user.statistics_details.votes.description') }} +

+
+
+
+
+ +
+ @if($votes->isNotEmpty()) +
+
+ +
+ + @if($votes->hasMorePages()) +
+ + + + @endif + + + + + +
+ @else + + @endif +
+ + @push('elements') + + @endpush + + +
From 4a3f672da3261b5ea803f5a6df971b3ef06d7467 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:00:34 +0200 Subject: [PATCH 06/14] added statistic blade file --- resources/views/statistics.blade.php | 73 ++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 resources/views/statistics.blade.php diff --git a/resources/views/statistics.blade.php b/resources/views/statistics.blade.php new file mode 100644 index 00000000..0ec3a5ad --- /dev/null +++ b/resources/views/statistics.blade.php @@ -0,0 +1,73 @@ + +
+ + + +

{{ __('user.statistics.heading') }}

+
+
+ + +
+

+ {{ __('user.statistics.subheading') }} +

+

+ {{ __('user.statistics.description') }} +

+
+
+
+
+ +
+ + +

{{ __('user.statistics.stats.clips-submitted.title') }}

+
+ + + + {{ Number::abbreviate($clipsSubmitted ?? 0, maxPrecision: 1) }} + + + + + {{ __('user.statistics.stats.clips-submitted.details') }} + + +
+ + +

{{ __('user.statistics.stats.votes.title') }}

+
+ + + + {{ Number::abbreviate($votes ?? 0, maxPrecision: 1) }} + + + + + {{ __('user.statistics.stats.votes.details') }} + + +
+ + +

{{ __('user.statistics.stats.votes-30days.title') }}

+
+ + + + {{ Number::abbreviate($votes30Days ?? 0, maxPrecision: 1) }} + + + + + {{ __('user.statistics.stats.votes-30days.details') }} + + +
+
+
From c46806aaf9a7f6f711bd36cc631791776d647e94 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:01:00 +0200 Subject: [PATCH 07/14] added vote change request --- app/Http/Controllers/ClipVoteController.php | 21 +++++++ app/Http/Requests/VoteChangeRequest.php | 62 +++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 app/Http/Requests/VoteChangeRequest.php diff --git a/app/Http/Controllers/ClipVoteController.php b/app/Http/Controllers/ClipVoteController.php index d468f550..1924106e 100644 --- a/app/Http/Controllers/ClipVoteController.php +++ b/app/Http/Controllers/ClipVoteController.php @@ -7,9 +7,11 @@ use App\Actions\GenerateVotingQueueAction; use App\Enums\ClipVoteType; use App\Enums\Permission; +use App\Http\Requests\VoteChangeRequest; use App\Http\Resources\Clip\ClipVoteResource; use App\Models\Clip; use App\Models\Scopes\ClipPermissionScope; +use App\Models\Vote; use Illuminate\Contracts\View\View; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -18,6 +20,7 @@ use Symfony\Component\HttpFoundation\Response as SymfonyResponse; #[Middleware('throttle:10,1', only: ['store'])] +#[Middleware('throttle:10,1', only: ['update'])] class ClipVoteController extends Controller { private const string SESSION_QUEUE_KEY = 'CLIP_VOTE_QUEUE'; @@ -97,6 +100,24 @@ public function store(Request $request): SymfonyResponse return new JsonResponse($nextClip?->toResource(ClipVoteResource::class)); } + public function update(VoteChangeRequest $request): SymfonyResponse + { + $voteId = $request->integer('voteId'); + $voted = $request->boolean('voted'); + + $vote = Vote::find($voteId); + + $vote->update([ + 'voted' => $voted, + ]); + + if (! $request->expectsJson()) { + return back(fallback: route('user.statistics.votes')); + } + + return new JsonResponse(true); + } + protected function resolveNextClip(Request $request): ?Clip { while ($clipId = $this->getNextClipId($request)) { diff --git a/app/Http/Requests/VoteChangeRequest.php b/app/Http/Requests/VoteChangeRequest.php new file mode 100644 index 00000000..a240c30c --- /dev/null +++ b/app/Http/Requests/VoteChangeRequest.php @@ -0,0 +1,62 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array|string> + */ + public function rules(): array + { + return [ + 'voteId' => ['bail', 'required', 'integer', 'exists:votes,id'], + 'voted' => ['required', 'bool'], + ]; + } + + public function after(): array + { + + return [ + function (Validator $validator): void { + if ($validator->errors()->isNotEmpty()) { + return; + } + $voteId = $this->integer('voteId'); + + $allowedVoteToChange = Vote::query() + ->where('user_id', $this->user()->id) + ->where('created_at', '>=', now()->sub(config('vheart.clips.voting.maximum_change_age'))) + ->has('clip') + ->orderByDesc('created_at') + ->orderByDesc('id') + ->first() ?? null; + + if ($allowedVoteToChange === null || $allowedVoteToChange->id !== $voteId) { + + $validator->errors()->add('voteId', __('vote.errors.change_not_allowed')); + + return; + } + }, + ]; + } +} From e710b8abc89b81f3b01485b679c7dc09cddccf15 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:01:26 +0200 Subject: [PATCH 08/14] added config for maximum change age --- config/vheart.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/vheart.php b/config/vheart.php index 8f4e343b..806cf64e 100644 --- a/config/vheart.php +++ b/config/vheart.php @@ -24,6 +24,8 @@ // as the clip with the most, we can still configure later though if we need to. // https://www.desmos.com/calculator/pu5hu8bpev 'interaction_boost_exponent' => (int) env('VHEART_CLIPS_VOTING_INTERACTION_BOOST_EXPONENT', 4), + + 'maximum_change_age' => CarbonInterval::fromString((string) env('VHEART_CLIPS_VOTING_MAXIMUM_CHANGE_AGE', '5 minutes')), ], 'scoring' => [ 'jury_weight' => (int) env('VHEART_CLIPS_SCORING_JURY_WEIGHT', 10), From 7592d70dde480115166874f6b16bed21c87f39e1 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:01:58 +0200 Subject: [PATCH 09/14] added dropdown entry --- resources/views/components/layout/header.blade.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/resources/views/components/layout/header.blade.php b/resources/views/components/layout/header.blade.php index 6a850880..518243ff 100644 --- a/resources/views/components/layout/header.blade.php +++ b/resources/views/components/layout/header.blade.php @@ -78,7 +78,13 @@ class="hidden size-4 opacity-70 transition-transform duration-200 group-hover:sc @endfeature - @featureAny([FeatureFlag::UserDashboard, FeatureFlag::UserSettings]) + @feature(FeatureFlag::UserStatistics) + + {{ __('navigation.statistics') }} + + @endfeature + + @featureAny([FeatureFlag::UserDashboard, FeatureFlag::UserSettings,FeatureFlag::UserStatistics]) @endfeatureAny From bb68a436678e2cb1eee91fb1138a685e48e4f563 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:02:21 +0200 Subject: [PATCH 10/14] added detail vode controller --- .../Statistics/VotesController.php | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 app/Http/Controllers/Statistics/VotesController.php diff --git a/app/Http/Controllers/Statistics/VotesController.php b/app/Http/Controllers/Statistics/VotesController.php new file mode 100644 index 00000000..0b2e1e93 --- /dev/null +++ b/app/Http/Controllers/Statistics/VotesController.php @@ -0,0 +1,53 @@ +where('user_id', $request->user()->id) + ->where('created_at', '>=', now()->sub(config('vheart.clips.voting.maximum_change_age'))) + ->has('clip') + ->orderByDesc('created_at') + ->orderByDesc('id') + ->first() ?? null; + + $votedInfos = Vote::query() + ->where('user_id', $request->user()->id) + ->has('clip') + ->with('clip', fn (Relation $relation) => $relation->withAbsoluteVoteCount()) + ->orderByDesc('created_at') + ->orderByDesc('id') + ->cursorPaginate(perPage: 32); + + if ($request->ajax()) { + return response( + view('statistics.vote-list', [ + 'allowedVoteToChange' => $allowedVoteToChange, + 'votes' => $votedInfos, + ])->render(), + headers: [ + 'X-Next-Page' => $votedInfos->nextPageUrl(), + ]); + } + + return view('statistics.votes', [ + 'allowedVoteToChange' => $allowedVoteToChange, + 'votes' => $votedInfos, + ]); + } +} From bd55eec6c3a941cee121dfd2e3aa62e0d537f46a Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:11:34 +0200 Subject: [PATCH 11/14] added translations --- lang/de/navigation.php | 1 + lang/de/user.php | 33 +++++++++++++++++++++++++++++++++ lang/de/vote.php | 3 +++ lang/en/navigation.php | 1 + lang/en/user.php | 33 +++++++++++++++++++++++++++++++++ lang/en/vote.php | 3 +++ 6 files changed, 74 insertions(+) diff --git a/lang/de/navigation.php b/lang/de/navigation.php index df426a27..dc705590 100644 --- a/lang/de/navigation.php +++ b/lang/de/navigation.php @@ -30,4 +30,5 @@ 'team_dashboard' => 'Team Dashboard', 'settings' => 'Einstellungen', 'logout' => 'Abmelden', + 'statistics' => 'Statistiken', ]; diff --git a/lang/de/user.php b/lang/de/user.php index 634de1b2..924d1692 100644 --- a/lang/de/user.php +++ b/lang/de/user.php @@ -33,4 +33,37 @@ 'submit' => 'Konto Löschen', ], ], + 'statistics' => [ + 'title' => 'Deine Statistiken', + 'heading' => 'Deine Statistiken', + 'subheading' => '', + 'description' => '', + 'stats' => [ + 'clips-submitted' => [ + 'title' => 'Eingereichte Clips', + 'details' => 'Eingereichte Clips Anzeigen', + ], + 'votes' => [ + 'title' => 'Votes', + 'details' => 'Votes Anzeigen', + ], + 'votes-30days' => [ + 'title' => 'Votes Last 30 Days', + 'details' => 'Votes Anzeigen', + ], + ], + ], + 'statistics_details' => [ + 'infinite-loader' => [ + 'no-more' => 'Keine weiteren :name verfügbar', + 'nothing-found' => 'Keine :name gefunden', + 'nothing-found-subtext' => 'Gerade sind keine :name verfügbar.', + ], + 'votes' => [ + 'name' => 'Votes', + 'heading' => 'Deine Votes', + 'subheading' => '', + 'description' => '', + ], + ], ]; diff --git a/lang/de/vote.php b/lang/de/vote.php index ddcfd2d2..5cb04fc9 100644 --- a/lang/de/vote.php +++ b/lang/de/vote.php @@ -4,4 +4,7 @@ return [ 'call_to_action' => 'Du möchtest Abstimmen? Klicke Hier!', + 'errors' => [ + 'change_not_allowed' => 'Du bist nicht erlaubt den Vote zu ändern.', + ], ]; diff --git a/lang/en/navigation.php b/lang/en/navigation.php index 23edfafb..f7c3bc7d 100644 --- a/lang/en/navigation.php +++ b/lang/en/navigation.php @@ -31,4 +31,5 @@ 'team_dashboard' => 'Team Dashboard', 'settings' => 'Settings', 'logout' => 'Logout', + 'statistics' => 'Statistics', ]; diff --git a/lang/en/user.php b/lang/en/user.php index 38be1f74..9fef1041 100644 --- a/lang/en/user.php +++ b/lang/en/user.php @@ -33,4 +33,37 @@ 'submit' => 'Delete Account', ], ], + 'statistics' => [ + 'title' => 'Account Statistics', + 'heading' => 'Your Statistics', + 'subheading' => '', + 'description' => '', + 'stats' => [ + 'clips-submitted' => [ + 'title' => 'Submitted Clips', + 'details' => 'View Submitted Clips', + ], + 'votes' => [ + 'title' => 'Votes', + 'details' => 'View Votes', + ], + 'votes-30days' => [ + 'title' => 'Votes Last 30 Days', + 'details' => 'View Votes', + ], + ], + ], + 'statistics_details' => [ + 'infinite-loader' => [ + 'no-more' => 'There are no more :name', + 'nothing-found' => 'No :name found', + 'nothing-found-subtext' => 'There are no :name available right now.', + ], + 'votes' => [ + 'name' => 'Votes', + 'heading' => 'Your Votes', + 'subheading' => '', + 'description' => '', + ], + ], ]; diff --git a/lang/en/vote.php b/lang/en/vote.php index bdbcf6a8..2a70b377 100644 --- a/lang/en/vote.php +++ b/lang/en/vote.php @@ -4,4 +4,7 @@ return [ 'call_to_action' => 'You want to Vote Clips? Click Here!', + 'errors' => [ + 'change_not_allowed' => 'You are not allowed to change this Vote.', + ], ]; From 15ed422e7200881539429c9bfe1fc6360a8906b2 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 20:18:54 +0200 Subject: [PATCH 12/14] remove btn for different issue --- resources/views/statistics.blade.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/resources/views/statistics.blade.php b/resources/views/statistics.blade.php index 0ec3a5ad..c005976a 100644 --- a/resources/views/statistics.blade.php +++ b/resources/views/statistics.blade.php @@ -31,10 +31,7 @@ {{ Number::abbreviate($clipsSubmitted ?? 0, maxPrecision: 1) }} - - - {{ __('user.statistics.stats.clips-submitted.details') }} - + From 34ff23e2517bf955523dd1d22ea6e7c324dd2793 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 23:40:56 +0200 Subject: [PATCH 13/14] update style --- resources/views/components/statistics/vote-list.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/components/statistics/vote-list.blade.php b/resources/views/components/statistics/vote-list.blade.php index 664edeaa..b532dbec 100644 --- a/resources/views/components/statistics/vote-list.blade.php +++ b/resources/views/components/statistics/vote-list.blade.php @@ -14,9 +14,9 @@ - +
From dec0a09696e0d73937cbba1096c18a498ddb5ed5 Mon Sep 17 00:00:00 2001 From: Speidy674 Date: Thu, 9 Jul 2026 23:53:42 +0200 Subject: [PATCH 14/14] added mr --- resources/views/components/statistics/vote-list.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/components/statistics/vote-list.blade.php b/resources/views/components/statistics/vote-list.blade.php index b532dbec..a3507780 100644 --- a/resources/views/components/statistics/vote-list.blade.php +++ b/resources/views/components/statistics/vote-list.blade.php @@ -54,7 +54,7 @@ class="size-4 sm:size-5 text-accent-foreground group-hover:text-muted-foreground
-
+