From 923d9a2c3e9f17b7e5d8fd22094afe7ddc5a9bbe Mon Sep 17 00:00:00 2001 From: josh Date: Tue, 21 Jul 2026 21:03:46 +1000 Subject: [PATCH] Added user select box to achievement pages --- app/Http/Middleware/HandleInertiaRequests.php | 1 + .../FlightsGoneBy/FollowingSelectBox.vue | 44 +++++++++++++++++++ .../FlightsGoneBy/Liveries/LiveryImage.vue | 1 - .../js/Pages/Profile/UserAchievement.vue | 9 ++++ resources/js/Pages/UserAchievements.vue | 5 +++ resources/js/Types/types.d.ts | 1 + 6 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 resources/js/Components/FlightsGoneBy/FollowingSelectBox.vue diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index b0d7d29..64d1d53 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -38,6 +38,7 @@ class HandleInertiaRequests extends Middleware 'roles' => $request->user()?->getRoleNames() ?? [], 'permissions' => $request->user()?->getAllPermissions()->pluck('name') ?? [], 'apiToken' => session('api_token'), + 'following' => $request->user()?->following()->with('followee')->get()->pluck('followee')->filter()->pluck('name')->toArray() ?? [], ], 'flash' => [ 'success' => $request->session()->get('success'), diff --git a/resources/js/Components/FlightsGoneBy/FollowingSelectBox.vue b/resources/js/Components/FlightsGoneBy/FollowingSelectBox.vue new file mode 100644 index 0000000..2332b38 --- /dev/null +++ b/resources/js/Components/FlightsGoneBy/FollowingSelectBox.vue @@ -0,0 +1,44 @@ + + + + + diff --git a/resources/js/Components/FlightsGoneBy/Liveries/LiveryImage.vue b/resources/js/Components/FlightsGoneBy/Liveries/LiveryImage.vue index b3b709a..07a7d51 100644 --- a/resources/js/Components/FlightsGoneBy/Liveries/LiveryImage.vue +++ b/resources/js/Components/FlightsGoneBy/Liveries/LiveryImage.vue @@ -25,5 +25,4 @@ defineProps<{ background-size: cover; min-width: 300px; } - diff --git a/resources/js/Pages/Profile/UserAchievement.vue b/resources/js/Pages/Profile/UserAchievement.vue index af92021..e4239ab 100644 --- a/resources/js/Pages/Profile/UserAchievement.vue +++ b/resources/js/Pages/Profile/UserAchievement.vue @@ -12,6 +12,7 @@ import {useFlights} from "@/Composables/useFlights"; import InlineBadge from "@/Components/FlightsGoneBy/InlineBadge.vue"; import GlassTooltip from "@/Components/FlightsGoneBy/GlassTooltip.vue"; import ButtonLink from "@/Components/FlightsGoneBy/ButtonLink.vue"; +import FollowingSelectBox from "@/Components/FlightsGoneBy/FollowingSelectBox.vue"; defineOptions({ layout: MainLayout }) @@ -119,6 +120,14 @@ const unlocked = computed(() => { :families="aircraft_families" :major-alliances="majorAlliances" /> + + + + diff --git a/resources/js/Pages/UserAchievements.vue b/resources/js/Pages/UserAchievements.vue index 3be6e01..cbd97a0 100644 --- a/resources/js/Pages/UserAchievements.vue +++ b/resources/js/Pages/UserAchievements.vue @@ -9,6 +9,7 @@ import MainLayout from "@/Layouts/MainLayout.vue"; import Panel from "@/Components/FlightsGoneBy/Panels/Panel.vue"; import PanelHeader from "@/Components/FlightsGoneBy/Panels/PanelHeader.vue"; import {useUpdateSetting} from "@/Composables/useUpdateSetting"; +import FollowingSelectBox from "@/Components/FlightsGoneBy/FollowingSelectBox.vue"; const {updateSetting} = useUpdateSetting() @@ -121,6 +122,10 @@ const filteredUnlockedCount = computed(() => /> + + + + diff --git a/resources/js/Types/types.d.ts b/resources/js/Types/types.d.ts index 8c4189e..f9b7dcb 100644 --- a/resources/js/Types/types.d.ts +++ b/resources/js/Types/types.d.ts @@ -101,6 +101,7 @@ export type SharedProps = import('@inertiajs/core').PageProps & { roles: string[]; permissions: string[]; apiToken: string | null; + following: string[]; }, flash: { success?: string;