From ed9e60ffb6c1c8af23ffc81c4ade04cd16233f6c Mon Sep 17 00:00:00 2001 From: Suhail Saqan Date: Thu, 22 Dec 2022 16:15:34 -0600 Subject: [PATCH] make wallet items a List --- damus.xcodeproj/project.pbxproj | 4 +- .../breez.imageset/Contents.json | 21 ---- .../Assets.xcassets/breez.imageset/breez.png | Bin 5845 -> 0 bytes damus/Util/Constants.swift | 11 +-- damus/Views/SelectWalletView.swift | 93 +++++++++--------- 5 files changed, 55 insertions(+), 74 deletions(-) delete mode 100644 damus/Assets.xcassets/breez.imageset/Contents.json delete mode 100644 damus/Assets.xcassets/breez.imageset/breez.png diff --git a/damus.xcodeproj/project.pbxproj b/damus.xcodeproj/project.pbxproj index 60964081..98208648 100644 --- a/damus.xcodeproj/project.pbxproj +++ b/damus.xcodeproj/project.pbxproj @@ -1025,7 +1025,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\""; - DEVELOPMENT_TEAM = XK7H4JAB3D; + DEVELOPMENT_TEAM = XL4476DR2X; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = damus/Info.plist; @@ -1064,7 +1064,7 @@ CODE_SIGN_STYLE = Automatic; CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\""; - DEVELOPMENT_TEAM = XK7H4JAB3D; + DEVELOPMENT_TEAM = XL4476DR2X; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = damus/Info.plist; diff --git a/damus/Assets.xcassets/breez.imageset/Contents.json b/damus/Assets.xcassets/breez.imageset/Contents.json deleted file mode 100644 index d07c6ece..00000000 --- a/damus/Assets.xcassets/breez.imageset/Contents.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "images" : [ - { - "filename" : "breez.png", - "idiom" : "universal", - "scale" : "1x" - }, - { - "idiom" : "universal", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "author" : "xcode", - "version" : 1 - } -} diff --git a/damus/Assets.xcassets/breez.imageset/breez.png b/damus/Assets.xcassets/breez.imageset/breez.png deleted file mode 100644 index 710c4cdb49eebcc444d6538cf88df9c5e796c2af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5845 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 diff --git a/damus/Util/Constants.swift b/damus/Util/Constants.swift index c5c21d3f..54411f61 100644 --- a/damus/Util/Constants.swift +++ b/damus/Util/Constants.swift @@ -25,14 +25,13 @@ public class Constants { static let WALLETS = """ [ - {"id": 0, "name": "Strike", "link": "strike:lightning", "appStoreLink": "https://apps.apple.com/us/app/strike-bitcoin-payments/id1488724463", "image": "strike"}, + {"id": 0, "name": "Strike", "link": "strike:", "appStoreLink": "https://apps.apple.com/us/app/strike-bitcoin-payments/id1488724463", "image": "strike"}, {"id": 1, "name": "Cash App", "link": "squarecash://", "appStoreLink": "https://apps.apple.com/us/app/cash-app/id711923939", "image": "cashapp"}, {"id": 2, "name": "Muun", "link": "muun:", "appStoreLink": "https://apps.apple.com/us/app/muun-wallet/id1482037683", "image": "muun"}, - {"id": 3, "name": "Blue Wallet", "link": "bluewallet:lightning", "appStoreLink": "https://apps.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040", "image": "bluewallet"}, - {"id": 4, "name": "Wallet Of Satoshi", "link": "walletofsatoshi:lightning", "appStoreLink": "https://apps.apple.com/us/app/wallet-of-satoshi/id1438599608", "image": "walletofsatoshi"}, - {"id": 5, "name": "Breez", "link": "breez:lightning", "appStoreLink": "https://testflight.apple.com/join/wPju2Du7", "image": "breez"}, - {"id": 6, "name": "Zebedee", "link": "zebedee:lightning", "appStoreLink": "https://apps.apple.com/us/app/zebedee-wallet/id1484394401", "image": "zebedee"}, - {"id": 7, "name": "Zeus LN", "link": "zeusln:lightning", "appStoreLink": "https://apps.apple.com/us/app/zeus-ln/id1456038895", "image": "zeusln"}, + {"id": 3, "name": "Blue Wallet", "link": "bluewallet:lightning:", "appStoreLink": "https://apps.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040", "image": "bluewallet"}, + {"id": 4, "name": "Wallet Of Satoshi", "link": "walletofsatoshi:lightning:", "appStoreLink": "https://apps.apple.com/us/app/wallet-of-satoshi/id1438599608", "image": "walletofsatoshi"}, + {"id": 5, "name": "Zebedee", "link": "zebedee:lightning:", "appStoreLink": "https://apps.apple.com/us/app/zebedee-wallet/id1484394401", "image": "zebedee"}, + {"id": 6, "name": "Zeus LN", "link": "zeusln:lightning:", "appStoreLink": "https://apps.apple.com/us/app/zeus-ln/id1456038895", "image": "zeusln"}, ] """.data(using: .utf8)! } diff --git a/damus/Views/SelectWalletView.swift b/damus/Views/SelectWalletView.swift index 13f17686..3d710985 100644 --- a/damus/Views/SelectWalletView.swift +++ b/damus/Views/SelectWalletView.swift @@ -7,7 +7,7 @@ import SwiftUI -struct WalletItem : Decodable, Identifiable { +struct WalletItem : Decodable, Identifiable, Hashable { var id: Int var name : String var link : String @@ -29,56 +29,59 @@ struct SelectWalletView: View { NavigationView { Form { VStack(alignment: .leading) { - Text("Copy invoice") - .bold() - .font(.title3) - .multilineTextAlignment(.center) - .padding([.bottom, .top], 8) - HStack { - Text(invoice).font(.body) - .multilineTextAlignment(.center) - .lineLimit(3) - .truncationMode(.tail) - - Image(systemName: self.invoice_copied ? "checkmark.circle" : "doc.on.doc") - } - .clipShape(RoundedRectangle(cornerRadius: 5)).onTapGesture { - UIPasteboard.general.string = invoice - self.invoice_copied = true - generator.impactOccurred() - } + Text("Copy invoice") + .bold() + .font(.title3) + .multilineTextAlignment(.center) + .padding([.bottom, .top], 8) + HStack { + Text(invoice).font(.body) + .lineLimit(2) + .truncationMode(.tail) + + Image(systemName: self.invoice_copied ? "checkmark.circle" : "doc.on.doc") + } + .clipShape(RoundedRectangle(cornerRadius: 5)).onTapGesture { + UIPasteboard.general.string = invoice + self.invoice_copied = true + generator.impactOccurred() + } Spacer() - Text("Select a lightning wallet") - .bold() - .font(.title3) - .multilineTextAlignment(.center) - .padding([.bottom], 8) - ForEach(walletItems) { wallet in - HStack(spacing: 20) { - Image(wallet.image) - .resizable() - .frame(width: 32.0, height: 32.0,alignment: .center) - .cornerRadius(5) - Text("\(wallet.name)") - }.onTapGesture { - if let url = URL(string: "\(wallet.link)\(invoice)"), UIApplication.shared.canOpenURL(url) { - openURL(url) - } else { - if let url = URL(string: wallet.appStoreLink), UIApplication.shared.canOpenURL(url) { + List { + Section{ + ForEach(walletItems, id: \.self) { wallet in + Button() { + if let url = URL(string: "\(wallet.link)\(invoice)"), UIApplication.shared.canOpenURL(url) { openURL(url) + } else { + if let url = URL(string: wallet.appStoreLink), UIApplication.shared.canOpenURL(url) { + openURL(url) + } } - } + } label: { + HStack { + Image(wallet.image).resizable().frame(width: 32.0, height: 32.0,alignment: .center).cornerRadius(5) + Text(wallet.name).font(.body) + .lineLimit(2) + .truncationMode(.tail) + }.padding([.bottom], 4) + }.buttonStyle(.plain) + wallet.id != 6 ? Divider().padding([.bottom], -6) : nil } - Divider() + } header: { + Text("Select a lightning wallet") + .bold() + .font(.title3) + .multilineTextAlignment(.center) + .padding([.bottom, .top], 8) } + } } - .navigationBarTitle(Text("Pay the lightning invoice"), displayMode: .inline) - .navigationBarItems(trailing: Button(action: { - self.show_select_wallet = false - }) { - Text("Done").bold() - }) - } + }.navigationBarTitle(Text("Pay the lightning invoice"), displayMode: .inline).navigationBarItems(trailing: Button(action: { + self.show_select_wallet = false + }) { + Text("Done").bold() + }) } } }