Detail sheet: reorder to title → route → photo

User asked for this order. Photo now slots between routeSection and
LIVE STATE rather than living as a hero above the title. Used a -16
horizontal padding so the photo still goes full-bleed inside the
otherwise-16pt-padded content stack.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Trey T
2026-05-27 08:51:11 -05:00
parent 16b874a7ad
commit a1831d0034
+11 -9
View File
@@ -38,17 +38,24 @@ struct LiveFlightDetailSheet: View {
var body: some View { var body: some View {
NavigationStack { NavigationStack {
ScrollView { ScrollView {
VStack(alignment: .leading, spacing: 0) {
photoBanner
VStack(alignment: .leading, spacing: 16) { VStack(alignment: .leading, spacing: 16) {
header header
// Depart Arrival lives directly under the callsign // Depart Arrival sits directly under the callsign
// header it's the single most important thing the // header it's the single most important thing the
// user opened the sheet to see. // user opened the sheet to see.
routeSection 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)
if let photo = aircraftPhoto, let credit = photo.photographer {
photoCredit(name: credit, link: photo.detailLink)
}
Divider() Divider()
Text("LIVE STATE") Text("LIVE STATE")
@@ -77,14 +84,9 @@ struct LiveFlightDetailSheet: View {
.padding(.top, 4) .padding(.top, 4)
aircraftCard aircraftCard
if let photo = aircraftPhoto, let credit = photo.photographer {
photoCredit(name: credit, link: photo.detailLink)
}
} }
.padding(16) .padding(16)
} }
}
.background(FlightTheme.background.ignoresSafeArea()) .background(FlightTheme.background.ignoresSafeArea())
.toolbar { .toolbar {
ToolbarItem(placement: .cancellationAction) { ToolbarItem(placement: .cancellationAction) {