Circle Text Node Detail

This commit is contained in:
Benjamin Faershtein 2025-04-01 23:57:37 -07:00
parent 8e68f3bbd5
commit 6b4c5119fd
2 changed files with 28 additions and 14 deletions

View file

@ -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))
}
}
}
}
}

View file

@ -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)
}