diff --git a/resources/js/Pages/Profile/Achievements/fun_challenges.airport_alphabet.vue b/resources/js/Pages/Profile/Achievements/fun_challenges.airport_alphabet.vue
index 69f1b69..73b24a1 100644
--- a/resources/js/Pages/Profile/Achievements/fun_challenges.airport_alphabet.vue
+++ b/resources/js/Pages/Profile/Achievements/fun_challenges.airport_alphabet.vue
@@ -148,11 +148,10 @@ const copied = ref(false)
to places you might never have otherwise considered.
- Most letters are possible to visit somewhat organically if you fly enough, but some will be difficult. Q is probably the most difficult letter to obtain -
- there's no rules against having a code starting with Q, but due to many aviation terms starting with Q (such as QNH), very few airports use it.
+ Most letters are possible to visit somewhat organically if you fly enough, but some will be difficult. Based on our airport database, it is actually possible to obtain every letter except V without leaving China.
- Based on our airport database, it is actually possible to obtain every letter except V without leaving China.
+ Q is probably the most difficult letter to obtain - there's no rules against having a code starting with Q, but due to many aviation terms starting with Q (such as QNH), very few airports use it.
At time of writing, there are just 2 major airports that have daily scheduled service by major airlines, and 4 airports with any commercial service at all.
@@ -162,7 +161,7 @@ const copied = ref(false)
QRO in Mexico - a fantastic place to visit and with flights from around Mexico and the US.
QSZ in China is also a very interesting place to visit and is served well from Urumqi and Xi'an.
QBC is a small airport in Canada and has daily runs on commuter aircraft from Vancouver.
- QSR is probably most promising recently - it did not have commercial service for 10 years and is having good growth now with European low cost carriers.
+ QSR in Italy is probably most promising recently - it did not have commercial service for 10 years and is having good growth now with European low cost carriers.
Other potential candidates do not seem so promising
diff --git a/resources/js/Pages/UserFlight.vue b/resources/js/Pages/UserFlight.vue
index 409477a..0ad8448 100644
--- a/resources/js/Pages/UserFlight.vue
+++ b/resources/js/Pages/UserFlight.vue
@@ -22,7 +22,6 @@ const props = defineProps<{
followStatus: string
canEdit: boolean
canView: boolean
- otherUsersOnFlight: string[]
}>()
@@ -44,11 +43,11 @@ const props = defineProps<{
-
+
Other Users On This Flight
([])
const selectedManufacturers = ref([])
const selectedAircraftModels = ref([])
const selectedAirportRegions = ref([])
+const selectedOtherUsers = ref([])
const activeFilterCount = computed(() =>
selectedYears.value.length +
@@ -73,7 +74,8 @@ const activeFilterCount = computed(() =>
selectedSeatTypes.value.length +
selectedManufacturers.value.length +
selectedAircraftModels.value.length +
- selectedAirportRegions.value.length
+ selectedAirportRegions.value.length +
+ selectedOtherUsers.value.length
)
function onFiltersChange(filters: {
@@ -92,6 +94,7 @@ function onFiltersChange(filters: {
manufacturers: string[]
aircraftModels: number[]
airportRegions: number[]
+ otherUsers: string[]
}) {
localSelectedFlightId.value = null
selectedYears.value = filters.years
@@ -109,6 +112,7 @@ function onFiltersChange(filters: {
selectedManufacturers.value = filters.manufacturers
selectedAircraftModels.value = filters.aircraftModels
selectedAirportRegions.value = filters.airportRegions
+ selectedOtherUsers.value = filters.otherUsers
}
// ── Filtering ─────────────────────────────────────────────────────────────────
@@ -143,6 +147,10 @@ function matchesFilters(f: Flight): boolean {
if (!selectedAirportRegions.value.includes(depRegion ?? -1) &&
!selectedAirportRegions.value.includes(arrRegion ?? -1)) return false
}
+ if (selectedOtherUsers.value.length) {
+ const names = f.other_users_on_flight ?? []
+ if (!selectedOtherUsers.value.some(name => names.includes(name))) return false
+ }
return true
}
diff --git a/resources/js/Types/types.d.ts b/resources/js/Types/types.d.ts
index e5d0b62..7d98382 100644
--- a/resources/js/Types/types.d.ts
+++ b/resources/js/Types/types.d.ts
@@ -278,6 +278,13 @@ export type RegionRange = "intraregional" | "interregional"
export type FlightScope = 'domestic' | 'international'
export type FlightRange = 'intracontinental' | 'intercontinental'
+export interface Livery{
+ image_url: string,
+ is_ai: boolean,
+ attribution: string,
+ attribution_url: string,
+}
+
export interface Flight {
id: number
flight_number: string | null
@@ -305,9 +312,10 @@ export interface Flight {
scope: FlightScope
range: FlightRange
region_range: RegionRange
- livery_url?: string
+ livery: Livery | null
user?: User | null
class_seat_combined: number
+ other_users_on_flight: string[]
}