damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

commit b03bef2f8ba9f80db978eb54b8d802ba910c0f70
parent a153515366d27b95630ad795be2e42963ebc8552
Author: William Casarin <jb55@jb55.com>
Date:   Fri,  6 Jan 2023 14:01:57 -0800

Profile: Add Universal Link share button

Changelog-Added: Added share button to profile

Diffstat:
Mdamus/Views/ProfileView.swift | 31++++++++++++++++++++++++++++---
1 file changed, 28 insertions(+), 3 deletions(-)

diff --git a/damus/Views/ProfileView.swift b/damus/Views/ProfileView.swift @@ -113,6 +113,7 @@ struct ProfileView: View { @State private var showingEditProfile = false @State var showing_select_wallet: Bool = false @State var is_zoomed: Bool = false + @State var show_share_sheet: Bool = false @StateObject var user_settings = UserSettingsStore() @Environment(\.dismiss) var dismiss @@ -165,7 +166,19 @@ struct ProfileView: View { } static let markdown = Markdown() - + + var ShareButton: some View { + Button(action: { + show_share_sheet = true + }) { + Image(systemName: "square.and.arrow.up.circle.fill") + .symbolRenderingMode(.palette) + .font(.system(size: 32)) + .padding() + .foregroundStyle(.white, .black, .black.opacity(0.8)) + } + } + var DMButton: some View { let dm_model = damus_state.dms.lookup_or_create(profile.pubkey) let dmview = DMChatView(damus_state: damus_state, pubkey: profile.pubkey) @@ -186,6 +199,9 @@ struct ProfileView: View { .aspectRatio(contentMode: .fill) .frame(width: geo.size.width, height: 150) .clipped() + + ShareButton + .offset(x: geo.size.width - 80.0, y: 50.0 ) } VStack(alignment: .leading) { let data = damus_state.profiles.lookup(id: profile.pubkey) @@ -200,7 +216,7 @@ struct ProfileView: View { ProfilePicView(pubkey: profile.pubkey, size: zoom_size, highlight: .none, profiles: damus_state.profiles) } .offset(y: -(pfp_size/2.0)) // Increase if set a frame - + Spacer() Group { @@ -223,10 +239,12 @@ struct ProfileView: View { EditButton(damus_state: damus_state) } } + } .offset(y: -15.0) // Increase if set a frame + } - + ProfileNameView(pubkey: profile.pubkey, profile: data, damus: damus_state) //.padding(.bottom) .padding(.top,-(pfp_size/2.0)) @@ -324,6 +342,13 @@ struct ProfileView: View { followers.unsubscribe() // our profilemodel needs a bit more help } + .sheet(isPresented: $show_share_sheet) { + if let npub = bech32_pubkey(profile.pubkey) { + if let url = URL(string: "https://damus.io/" + npub) { + ShareSheet(activityItems: [url]) + } + } + } .ignoresSafeArea() } }