From cd68873fb205c5242309d369bc6b86b8bf3f2f0e Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Fri, 20 Oct 2023 19:34:20 -0700 Subject: [PATCH] Waypoint details updates --- .../Views/Nodes/Helpers/NodeMapSwiftUI.swift | 8 +++----- .../Views/Nodes/Helpers/WaypointPopover.swift | 14 +++++++++++++- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Meshtastic/Views/Nodes/Helpers/NodeMapSwiftUI.swift b/Meshtastic/Views/Nodes/Helpers/NodeMapSwiftUI.swift index 42f87496..aa9dd77f 100644 --- a/Meshtastic/Views/Nodes/Helpers/NodeMapSwiftUI.swift +++ b/Meshtastic/Views/Nodes/Helpers/NodeMapSwiftUI.swift @@ -193,11 +193,11 @@ struct NodeMapSwiftUI: View { .padding(.horizontal, 20) } } - .popover(item: $selectedWaypoint) { selection in + .sheet(item: $selectedWaypoint) { selection in WaypointPopover(waypoint: selection) + .presentationDetents([.fraction(0.2), .medium]) .padding() .opacity(0.8) - .presentationCompactAdaptation(.sheet) } .sheet(isPresented: $isEditingSettings) { VStack { @@ -282,9 +282,7 @@ struct NodeMapSwiftUI: View { .padding() #endif } - //.presentationDetents([.fraction(0.60)]) - .presentationDetents([.medium, .large]) - .presentationDragIndicator(.visible) + .presentationDetents([.fraction(0.4), .medium]) } .onChange(of: node) { let mostRecent = node.positions?.lastObject as? PositionEntity diff --git a/Meshtastic/Views/Nodes/Helpers/WaypointPopover.swift b/Meshtastic/Views/Nodes/Helpers/WaypointPopover.swift index 1c4d8f8d..19d5c309 100644 --- a/Meshtastic/Views/Nodes/Helpers/WaypointPopover.swift +++ b/Meshtastic/Views/Nodes/Helpers/WaypointPopover.swift @@ -9,12 +9,13 @@ import SwiftUI import MapKit struct WaypointPopover: View { + @Environment(\.dismiss) private var dismiss var waypoint: WaypointEntity let distanceFormatter = MKDistanceFormatter() var body: some View { VStack { HStack { - CircleText(text: String(UnicodeScalar(Int(waypoint.icon)) ?? "📍"), color: Color.blue) + CircleText(text: String(UnicodeScalar(Int(waypoint.icon)) ?? "📍"), color: Color.orange) Text(waypoint.name ?? "?") .font(.title3) if waypoint.locked > 0 { @@ -92,6 +93,17 @@ struct WaypointPopover: View { } } } + #if targetEnvironment(macCatalyst) + Button { + dismiss() + } label: { + Label("close", systemImage: "xmark") + } + .buttonStyle(.bordered) + .buttonBorderShape(.capsule) + .controlSize(.large) + .padding() + #endif } .tag(waypoint.id) }