diff --git a/damus/Components/UserView.swift b/damus/Components/UserView.swift index 33db064e..b4e79ba6 100644 --- a/damus/Components/UserView.swift +++ b/damus/Components/UserView.swift @@ -43,7 +43,9 @@ struct UserView: View { 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 { - Text(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) } diff --git a/damus/Views/EventView.swift b/damus/Views/EventView.swift index 4f37f2e8..60e49706 100644 --- a/damus/Views/EventView.swift +++ b/damus/Views/EventView.swift @@ -12,6 +12,7 @@ enum EventViewKind { case small case normal case selected + case subheadline } struct EventView: View { @@ -106,6 +107,8 @@ func eventviewsize_to_font(_ size: EventViewKind) -> Font { return .body case .selected: return .custom("selected", size: 21.0) + case .subheadline: + return .subheadline } } @@ -117,6 +120,8 @@ func eventviewsize_to_uifont(_ size: EventViewKind) -> UIFont { return .preferredFont(forTextStyle: .body) case .selected: return .preferredFont(forTextStyle: .title2) + case .subheadline: + return .preferredFont(forTextStyle: .subheadline) } } diff --git a/damus/Views/Events/EventProfile.swift b/damus/Views/Events/EventProfile.swift index 54ddb210..c06a6476 100644 --- a/damus/Views/Events/EventProfile.swift +++ b/damus/Views/Events/EventProfile.swift @@ -15,6 +15,8 @@ func eventview_pfp_size(_ size: EventViewKind) -> CGFloat { return PFP_SIZE case .selected: return PFP_SIZE + case .subheadline: + return PFP_SIZE * 0.5 } } diff --git a/damus/Views/ParticipantsView.swift b/damus/Views/ParticipantsView.swift index 958a2f89..ebfecfac 100644 --- a/damus/Views/ParticipantsView.swift +++ b/damus/Views/ParticipantsView.swift @@ -57,7 +57,9 @@ struct ParticipantsView: View { 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 { - Text(FollowUserView.markdown.process(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) } diff --git a/damus/Views/Profile/ProfileView.swift b/damus/Views/Profile/ProfileView.swift index d6fb47d7..4fa1a268 100644 --- a/damus/Views/Profile/ProfileView.swift +++ b/damus/Views/Profile/ProfileView.swift @@ -370,9 +370,15 @@ struct ProfileView: View { let profile_data = damus_state.profiles.lookup(id: profile.pubkey) nameSection(profile_data: profile_data) - - Text(ProfileView.markdown.process(profile_data?.about ?? "")) - .font(.subheadline).textSelection(.enabled) + + 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 + SelectableText(attributedString: about_string, size: .subheadline) + } else { + Text(verbatim: "") + .font(.subheadline) + } if let url = profile_data?.website_url { WebsiteLink(url: url)