diff --git a/damus/Nostr/Nostr.swift b/damus/Nostr/Nostr.swift index 35d32f77..e6cba176 100644 --- a/damus/Nostr/Nostr.swift +++ b/damus/Nostr/Nostr.swift @@ -31,7 +31,8 @@ class ProfileRecord { } guard let profile = data.profile, - let addr = profile.lud16 ?? profile.lud06 else { + let addr = (profile.lud16 ?? profile.lud06)?.trimmingCharacters(in: .whitespaces) + else { return nil; } @@ -301,7 +302,7 @@ class Profile: Codable { */ func make_test_profile() -> Profile { - return Profile(name: "jb55", display_name: "Will", about: "Its a me", picture: "https://cdn.jb55.com/img/red-me.jpg", banner: "https://pbs.twimg.com/profile_banners/9918032/1531711830/600x200", website: "jb55.com", lud06: "jb55@jb55.com", lud16: nil, nip05: "jb55@jb55.com", damus_donation: 1) + return Profile(name: "jb55", display_name: "Will", about: "Its a me", picture: "https://cdn.jb55.com/img/red-me.jpg", banner: "https://pbs.twimg.com/profile_banners/9918032/1531711830/600x200", website: "jb55.com", lud06: nil, lud16: "jb55@jb55.com", nip05: "jb55@jb55.com", damus_donation: 1) } func make_ln_url(_ str: String?) -> URL? { diff --git a/damus/Views/Profile/EditMetadataView.swift b/damus/Views/Profile/EditMetadataView.swift index 18654d86..15abfb8d 100644 --- a/damus/Views/Profile/EditMetadataView.swift +++ b/damus/Views/Profile/EditMetadataView.swift @@ -170,6 +170,9 @@ struct EditMetadataView: View { TextField(NSLocalizedString("Lightning Address or LNURL", comment: "Placeholder text for entry of Lightning Address or LNURL."), text: $ln) .autocorrectionDisabled(true) .textInputAutocapitalization(.never) + .onReceive(Just(ln)) { newValue in + self.ln = newValue.trimmingCharacters(in: .whitespaces) + } } Section(content: { diff --git a/damus/Views/Zaps/ProfileZapLinkView.swift b/damus/Views/Zaps/ProfileZapLinkView.swift index ad130327..a09fecf2 100644 --- a/damus/Views/Zaps/ProfileZapLinkView.swift +++ b/damus/Views/Zaps/ProfileZapLinkView.swift @@ -24,8 +24,8 @@ struct ProfileZapLinkView: View { self.label = label self.action = action self.reactions_enabled = reactions_enabled - self.lud16 = lud16 - self.lnurl = lnurl + self.lud16 = lud16?.trimmingCharacters(in: .whitespaces) + self.lnurl = lnurl?.trimmingCharacters(in: .whitespaces) } init(damus_state: DamusState, pubkey: Pubkey, action: ActionFunction? = nil, @ViewBuilder label: @escaping ContentViewFunction) { @@ -36,8 +36,8 @@ struct ProfileZapLinkView: View { let profile_txn = damus_state.profiles.lookup_with_timestamp(pubkey) let record = profile_txn?.unsafeUnownedValue self.reactions_enabled = record?.profile?.reactions ?? true - self.lud16 = record?.profile?.lud06 - self.lnurl = record?.lnurl + self.lud16 = record?.profile?.lud06?.trimmingCharacters(in: .whitespaces) + self.lnurl = record?.lnurl?.trimmingCharacters(in: .whitespaces) } init(unownedProfileRecord: ProfileRecord?, profileModel: ProfileModel, action: ActionFunction? = nil, @ViewBuilder label: @escaping ContentViewFunction) { @@ -46,8 +46,8 @@ struct ProfileZapLinkView: View { self.action = action self.reactions_enabled = unownedProfileRecord?.profile?.reactions ?? true - self.lud16 = unownedProfileRecord?.profile?.lud16 - self.lnurl = unownedProfileRecord?.lnurl + self.lud16 = unownedProfileRecord?.profile?.lud16?.trimmingCharacters(in: .whitespaces) + self.lnurl = unownedProfileRecord?.lnurl?.trimmingCharacters(in: .whitespaces) } var body: some View { @@ -81,12 +81,13 @@ struct ProfileZapLinkView: View { } } } - .disabled(lnurl == nil) + .disabled(lnurl == nil && lud16 == nil) } } #Preview { - ProfileZapLinkView(pubkey: test_pubkey, reactions_enabled: true, lud16: make_test_profile().lud16, lnurl: "test@sendzaps.lol", label: { reactions_enabled, lud16, lnurl in + let profile = make_test_profile() + ProfileZapLinkView(pubkey: test_pubkey, reactions_enabled: true, lud16: profile.lud16, lnurl: profile.lud06, label: { reactions_enabled, lud16, lnurl in Image("zap.fill") }) }