commit 87d4752aa43dfe6f6c46ea1e27d235d1cbbb4d82
parent 6ec533b0cdee2d78705489597a269a164130004d
Author: William Casarin <jb55@jb55.com>
Date: Tue, 20 Jun 2023 16:05:38 +0200
ui: use AboutView in existing views
Diffstat:
3 files changed, 6 insertions(+), 44 deletions(-)
diff --git a/damus/Components/UserView.swift b/damus/Components/UserView.swift
@@ -33,8 +33,9 @@ struct UserView: View {
let damus_state: DamusState
let pubkey: String
+ @State var about_text: Text? = nil
+
var body: some View {
-
VStack {
HStack {
ProfilePicView(pubkey: pubkey, size: PFP_SIZE, highlight: .none, profiles: damus_state.profiles, disable_animation: damus_state.settings.disable_animation)
@@ -42,10 +43,8 @@ struct UserView: View {
VStack(alignment: .leading) {
let profile = damus_state.profiles.lookup(id: pubkey)
ProfileName(pubkey: pubkey, profile: profile, damus: damus_state, show_nip5_domain: false)
- if let about = profile?.about {
- let blocks = parse_mentions(content: about, tags: [])
- let about_string = render_blocks(blocks: blocks, profiles: damus_state.profiles).content.attributed
- Text(about_string)
+ if let about_text {
+ about_text
.lineLimit(3)
.font(.footnote)
}
diff --git a/damus/Views/ParticipantsView.swift b/damus/Views/ParticipantsView.swift
@@ -51,21 +51,7 @@ struct ParticipantsView: View {
ForEach(originalReferences.pRefs) { participant in
let pubkey = participant.id
HStack {
- ProfilePicView(pubkey: pubkey, size: PFP_SIZE, highlight: .none, profiles: damus_state.profiles, disable_animation: damus_state.settings.disable_animation)
-
- VStack(alignment: .leading) {
- let profile = damus_state.profiles.lookup(id: pubkey)
- ProfileName(pubkey: pubkey, profile: profile, damus: damus_state, show_nip5_domain: false)
- if let about = profile?.about {
- let blocks = parse_mentions(content: about, tags: [])
- let about_string = render_blocks(blocks: blocks, profiles: damus_state.profiles).content.attributed
- Text(about_string)
- .lineLimit(3)
- .font(.footnote)
- }
- }
-
- Spacer()
+ UserView(damus_state: damus_state, pubkey: pubkey)
Image("check-circle.fill")
.font(.system(size: 30))
diff --git a/damus/Views/Profile/ProfileView.swift b/damus/Views/Profile/ProfileView.swift
@@ -93,7 +93,6 @@ struct ProfileView: View {
let damus_state: DamusState
let pfp_size: CGFloat = 90.0
let bannerHeight: CGFloat = 150.0
- let max_about_length = 280
static let markdown = Markdown()
@@ -104,7 +103,6 @@ struct ProfileView: View {
@State var action_sheet_presented: Bool = false
@State var filter_state : FilterState = .posts
@State var yOffset: CGFloat = 0
- @State var show_full_about: Bool = false
@StateObject var profile: ProfileModel
@StateObject var followers: FollowersModel
@@ -403,28 +401,7 @@ struct ProfileView: View {
nameSection(profile_data: profile_data)
if let about = profile_data?.about {
- let blocks = parse_mentions(content: about, tags: [])
- let about_string = render_blocks(blocks: blocks, profiles: damus_state.profiles).content.attributed
- let truncated_about = show_full_about ? about_string : about_string.truncateOrNil(maxLength: max_about_length)
-
- SelectableText(attributedString: truncated_about ?? about_string, size: .subheadline)
-
- if truncated_about != nil {
- if show_full_about {
- Button(NSLocalizedString("Show less", comment: "Button to show less of a long profile description.")) {
- show_full_about = false
- }
- .font(.footnote)
- } else {
- Button(NSLocalizedString("Show more", comment: "Button to show more of a long profile description.")) {
- show_full_about = true
- }
- .font(.footnote)
- }
- }
- } else {
- Text(verbatim: "")
- .font(.subheadline)
+ AboutView(state: damus_state, about: about)
}
if let url = profile_data?.website_url {