From 6b4c5119fd77cfa508c4c84ceaee0e8a175172b4 Mon Sep 17 00:00:00 2001 From: Benjamin Faershtein <119711889+RCGV1@users.noreply.github.com> Date: Tue, 1 Apr 2025 23:57:37 -0700 Subject: [PATCH] Circle Text Node Detail --- Meshtastic/Views/Helpers/CircleText.swift | 40 +++++++++++++------ .../Views/Messages/ChannelMessageList.swift | 2 +- 2 files changed, 28 insertions(+), 14 deletions(-) diff --git a/Meshtastic/Views/Helpers/CircleText.swift b/Meshtastic/Views/Helpers/CircleText.swift index b8f74842..c48ed902 100644 --- a/Meshtastic/Views/Helpers/CircleText.swift +++ b/Meshtastic/Views/Helpers/CircleText.swift @@ -4,29 +4,43 @@ A view draws a circle in the background of the shortName text */ import SwiftUI +import CoreData struct CircleText: View { - var text: String - var color: Color + var text: String + var color: Color var circleSize: CGFloat = 45 + var node: NodeInfoEntity? = nil + + var body: some View { + NavigationStack{ + if let node = node { + NavigationLink(destination: NodeDetail(node: node)) { + circleContent + } + } else { + circleContent + } + } + + } - var body: some View { - - ZStack { - Circle() - .fill(color) - .frame(width: circleSize, height: circleSize) - Text(text.addingVariationSelectors) + var circleContent: some View { + ZStack { + Circle() + .fill(color) + .frame(width: circleSize, height: circleSize) + Text(text) .frame(width: circleSize * 0.9, height: circleSize * 0.9, alignment: .center) .foregroundColor(color.isLight() ? .black : .white) .minimumScaleFactor(0.001) .font(.system(size: 1300)) - } - } + } + } } struct CircleText_Previews: PreviewProvider { - static var previews: some View { + static var previews: some View { VStack { HStack { CircleText(text: "N1", color: Color.yellow, circleSize: 80) @@ -75,5 +89,5 @@ struct CircleText_Previews: PreviewProvider { .previewLayout(.fixed(width: 300, height: 100)) } } - } + } } diff --git a/Meshtastic/Views/Messages/ChannelMessageList.swift b/Meshtastic/Views/Messages/ChannelMessageList.swift index bf5be325..5a1a4fe2 100644 --- a/Meshtastic/Views/Messages/ChannelMessageList.swift +++ b/Meshtastic/Views/Messages/ChannelMessageList.swift @@ -48,7 +48,7 @@ struct ChannelMessageList: View { HStack(alignment: .bottom) { if currentUser { Spacer(minLength: 50) } if !currentUser { - CircleText(text: message.fromUser?.shortName ?? "?", color: Color(UIColor(hex: UInt32(message.fromUser?.num ?? 0))), circleSize: 44) + CircleText(text: message.fromUser?.shortName ?? "?", color: Color(UIColor(hex: UInt32(message.fromUser?.num ?? 0))), circleSize: 44, node: getNodeInfo(id: Int64(message.fromUser?.num ?? 0), context: context)) .padding(.all, 5) .offset(y: -7) }