From 42ea150d45a260c21fe7128ed4ab53ac14973723 Mon Sep 17 00:00:00 2001 From: Swift Date: Tue, 7 Mar 2023 17:58:10 -0500 Subject: [PATCH] Show error on invalid lightning tip address Changelog-Changed: Show error on invalid lightning tip address Closes: #752 --- damus/Views/EditMetadataView.swift | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/damus/Views/EditMetadataView.swift b/damus/Views/EditMetadataView.swift index 7b2f1d36..bdf0c09c 100644 --- a/damus/Views/EditMetadataView.swift +++ b/damus/Views/EditMetadataView.swift @@ -65,6 +65,8 @@ struct EditMetadataView: View { @Environment(\.dismiss) var dismiss @Environment(\.colorScheme) var colorScheme + + @State var confirm_ln_address: Bool = false init (damus_state: DamusState) { self.damus_state = damus_state @@ -103,6 +105,10 @@ struct EditMetadataView: View { damus_state.pool.send(.event(metadata_ev)) } } + + func is_ln_valid(ln: String) -> Bool { + return ln.contains("@") || ln.lowercased().starts(with: "lnurl") + } var nip05_parts: NIP05? { return NIP05.parse(nip05) @@ -201,8 +207,18 @@ struct EditMetadataView: View { }) Button(NSLocalizedString("Save", comment: "Button for saving profile.")) { - save() - dismiss() + if !ln.isEmpty && !is_ln_valid(ln: ln) { + confirm_ln_address = true + } else { + save() + dismiss() + } + } + .alert(NSLocalizedString("Invalid Tip Address", comment: "Title of alerting as invalid tip address."), isPresented: $confirm_ln_address) { + Button(NSLocalizedString("Ok", comment: "Button to dismiss the alert.")) { + } + } message: { + Text("The address should either begin with LNURL or should look like an email address.", comment: "Giving the description of the alert message.") } } }