From 23abed414eed10a3947d0df74d94eedbaa49b530 Mon Sep 17 00:00:00 2001 From: Benjamin Faershtein <119711889+RCGV1@users.noreply.github.com> Date: Fri, 4 Apr 2025 19:37:16 -0700 Subject: [PATCH] Made position popover icon clickable --- Meshtastic/Views/Helpers/CircleText.swift | 11 +++++---- .../Views/Messages/ChannelMessageList.swift | 4 ++-- .../Nodes/Helpers/Map/PositionPopover.swift | 24 +++++++++---------- 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/Meshtastic/Views/Helpers/CircleText.swift b/Meshtastic/Views/Helpers/CircleText.swift index c48ed902..c7e490b7 100644 --- a/Meshtastic/Views/Helpers/CircleText.swift +++ b/Meshtastic/Views/Helpers/CircleText.swift @@ -13,14 +13,15 @@ struct CircleText: View { var node: NodeInfoEntity? = nil var body: some View { - NavigationStack{ if let node = node { - NavigationLink(destination: NodeDetail(node: node)) { - circleContent - } + NavigationStack{ + NavigationLink(destination: NodeDetail(node: node)) { + circleContent + } + } } else { circleContent - } + } } diff --git a/Meshtastic/Views/Messages/ChannelMessageList.swift b/Meshtastic/Views/Messages/ChannelMessageList.swift index 5a1a4fe2..4480b53b 100644 --- a/Meshtastic/Views/Messages/ChannelMessageList.swift +++ b/Meshtastic/Views/Messages/ChannelMessageList.swift @@ -160,8 +160,8 @@ struct ChannelMessageList: View { .toolbar { ToolbarItem(placement: .principal) { HStack { - CircleText(text: String(channel.index), color: .accentColor, circleSize: 44).fixedSize() - Text(String(channel.name ?? "unknown".localized).camelCaseToWords()).font(.headline) + CircleText(text: String(channel.index), color: .accentColor, circleSize: 44).fixedSize() + Text(String(channel.name ?? "unknown".localized).camelCaseToWords()).font(.headline) } } ToolbarItem(placement: .navigationBarTrailing) { diff --git a/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift b/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift index f68354c0..880a4074 100644 --- a/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift +++ b/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift @@ -23,10 +23,10 @@ struct PositionPopover: View { var body: some View { // Node Color from node.num let nodeColor = UIColor(hex: UInt32(position.nodePosition?.num ?? 0)) + NavigationStack{ VStack { HStack { ZStack { - if position.nodePosition?.isOnline ?? false { Circle() .fill(Color(nodeColor.lighter()).opacity(0.4).shadow(.drop(color: Color(nodeColor).isLight() ? .black : .white, radius: 5))) @@ -34,16 +34,15 @@ struct PositionPopover: View { .scaleEffect(scale) .animation( Animation.easeInOut(duration: 0.6) - .repeatForever().delay(delay), value: scale + .repeatForever().delay(delay), value: scale ) .onAppear { self.scale = 1 } .frame(width: 90, height: 90) } - CircleText(text: position.nodePosition?.user?.shortName ?? "?", color: Color(nodeColor), circleSize: 65) + CircleText(text: position.nodePosition?.user?.shortName ?? "?", color: Color(nodeColor), circleSize: 65, node: getNodeInfo(id: Int64(position.nodePosition?.user?.num ?? 0), context: context)) } - Text(position.nodePosition?.user?.longName ?? "Unknown") .font(.largeTitle) } @@ -106,7 +105,7 @@ struct PositionPopover: View { .foregroundColor(.primary) .font(idiom == .phone ? .callout : .body) } - + } icon: { Image(systemName: "mountain.2.fill") .symbolRenderingMode(.hierarchical) @@ -147,9 +146,9 @@ struct PositionPopover: View { Text("Heading: \(heading.formatted(.measurement(width: .narrow, numberFormatStyle: .number.precision(.fractionLength(0)))))") } icon: { Image(systemName: "location.north") - .symbolRenderingMode(.hierarchical) - .frame(width: 35) - .rotationEffect(degrees) + .symbolRenderingMode(.hierarchical) + .frame(width: 35) + .rotationEffect(degrees) } .padding(.bottom, 5) /// Distance @@ -181,15 +180,15 @@ struct PositionPopover: View { } .padding(.bottom, 5) if position.nodePosition?.viaMqtt ?? false { - + Label { Text("MQTT") .font(idiom == .phone ? .callout : .body) } icon: { Image(systemName: "network") - .symbolRenderingMode(.hierarchical) - .frame(width: 35) - .rotationEffect(degrees) + .symbolRenderingMode(.hierarchical) + .frame(width: 35) + .rotationEffect(degrees) } .padding(.bottom, 5) } @@ -244,6 +243,7 @@ struct PositionPopover: View { #endif } } + } .presentationDetents([.fraction(0.65), .large]) .presentationContentInteraction(.scrolls) .presentationDragIndicator(.visible)