diff --git a/Flights/Views/LiveFlightDetailSheet.swift b/Flights/Views/LiveFlightDetailSheet.swift index 85a9f86..63baa7a 100644 --- a/Flights/Views/LiveFlightDetailSheet.swift +++ b/Flights/Views/LiveFlightDetailSheet.swift @@ -38,52 +38,54 @@ struct LiveFlightDetailSheet: View { var body: some View { NavigationStack { ScrollView { - VStack(alignment: .leading, spacing: 0) { + VStack(alignment: .leading, spacing: 16) { + header + + // Depart → Arrival sits directly under the callsign + // header — it's the single most important thing the + // user opened the sheet to see. + routeSection + + // Aircraft photo follows the route. Negative + // horizontal padding lets the photo break out of the + // 16pt content padding to be full-bleed edge-to-edge. photoBanner + .padding(.horizontal, -16) - VStack(alignment: .leading, spacing: 16) { - header + if let photo = aircraftPhoto, let credit = photo.photographer { + photoCredit(name: credit, link: photo.detailLink) + } - // Depart → Arrival lives directly under the callsign - // header — it's the single most important thing the - // user opened the sheet to see. - routeSection + Divider() - Divider() + Text("LIVE STATE") + .font(FlightTheme.label()) + .foregroundStyle(FlightTheme.textTertiary) + .tracking(1) - Text("LIVE STATE") - .font(FlightTheme.label()) - .foregroundStyle(FlightTheme.textTertiary) - .tracking(1) + liveStateGrid - liveStateGrid - - if recentFlights.count > 1 { - Text("RECENT FLIGHTS") - .font(FlightTheme.label()) - .foregroundStyle(FlightTheme.textTertiary) - .tracking(1) - .padding(.top, 4) - - ForEach(recentFlights.prefix(8), id: \.self) { flight in - recentFlightRow(flight) - } - } - - Text("AIRCRAFT") + if recentFlights.count > 1 { + Text("RECENT FLIGHTS") .font(FlightTheme.label()) .foregroundStyle(FlightTheme.textTertiary) .tracking(1) .padding(.top, 4) - aircraftCard - - if let photo = aircraftPhoto, let credit = photo.photographer { - photoCredit(name: credit, link: photo.detailLink) + ForEach(recentFlights.prefix(8), id: \.self) { flight in + recentFlightRow(flight) } } - .padding(16) + + Text("AIRCRAFT") + .font(FlightTheme.label()) + .foregroundStyle(FlightTheme.textTertiary) + .tracking(1) + .padding(.top, 4) + + aircraftCard } + .padding(16) } .background(FlightTheme.background.ignoresSafeArea()) .toolbar {