mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-09-28 06:59:42 +00:00
41 lines
1.3 KiB
Swift
41 lines
1.3 KiB
Swift
//
|
|
// BadgeUserPreview.swift
|
|
// SimpleX (iOS)
|
|
//
|
|
// Created by spaced4ndy on 30.07.2026.
|
|
// Copyright © 2026 SimpleX Chat. All rights reserved.
|
|
//
|
|
|
|
import SwiftUI
|
|
import SimpleXChat
|
|
|
|
struct BadgeUserPreview<Trailing: View>: View {
|
|
@EnvironmentObject var chatModel: ChatModel
|
|
let level: BadgeLevel
|
|
let trailing: () -> Trailing
|
|
|
|
init(level: BadgeLevel, @ViewBuilder trailing: @escaping () -> Trailing = { EmptyView() }) {
|
|
self.level = level
|
|
self.trailing = trailing
|
|
}
|
|
|
|
var body: some View {
|
|
let user = chatModel.currentUser
|
|
let displayName = user?.displayName ?? NSLocalizedString("My nickname", comment: "badges preview placeholder")
|
|
let previewBadge = LocalBadge(
|
|
// fabricated for the preview: the status is given here, and NameBadge renders from it alone
|
|
badge: BadgeInfo(badgeType: level.badgeType, badgeExpiry: .distantFuture),
|
|
status: .active
|
|
)
|
|
return VStack(spacing: 12) {
|
|
ProfileImage(imageStr: user?.image, size: 128)
|
|
HStack(alignment: .center, spacing: 6) {
|
|
NameWithBadge(Text(displayName).font(.largeTitle), previewBadge, .largeTitle)
|
|
.lineLimit(1)
|
|
.minimumScaleFactor(0.75)
|
|
trailing()
|
|
}
|
|
}
|
|
}
|
|
}
|