Compare commits

...

2 Commits

Author SHA1 Message Date
0b288c921e Reduce default zap amount and deduplicate from preset zap amount items
Changelog-Changed: Reduced default zap amount and deduplicated from preset zap amount items
Closes: https://github.com/damus-io/damus/issues/3198
Signed-off-by: Terry Yiu <git@tyiu.xyz>
2025-08-23 20:59:23 -04:00
f73c0ec1c4 Add support for scanning nprofile QR codes
Changelog-Added: Added support for scanning nprofile QR codes

Closes: https://github.com/damus-io/damus/issues/2671
Signed-off-by: Terry Yiu <git@tyiu.xyz>
2025-08-18 19:10:51 -07:00
3 changed files with 30 additions and 30 deletions

View File

@@ -8,7 +8,7 @@
import Foundation
import UIKit
let fallback_zap_amount = 1000
let fallback_zap_amount = 21
let default_emoji_reactions = ["🤣", "🤙", "", "💜", "🔥", "😀", "😃", "😄", "🥶"]
func setting_property_key(key: String) -> String {

View File

@@ -8,6 +8,17 @@
import SwiftUI
import Combine
let zapAmounts: [Int: String] = [
69: "😘",
420: "🌿",
5000: "💜",
10_000: "😍",
20_000: "🤩",
50_000: "🔥",
100_000: "🚀",
1_000_000: "🤯",
]
struct ZapAmountItem: Identifiable, Hashable {
let amount: Int
let icon: String
@@ -22,18 +33,13 @@ func get_default_zap_amount_item(_ def: Int) -> ZapAmountItem {
}
func get_zap_amount_items(_ default_zap_amt: Int) -> [ZapAmountItem] {
let def_item = get_default_zap_amount_item(default_zap_amt)
var entries = [
ZapAmountItem(amount: 69, icon: "😘"),
ZapAmountItem(amount: 420, icon: "🌿"),
ZapAmountItem(amount: 5000, icon: "💜"),
ZapAmountItem(amount: 10_000, icon: "😍"),
ZapAmountItem(amount: 20_000, icon: "🤩"),
ZapAmountItem(amount: 50_000, icon: "🔥"),
ZapAmountItem(amount: 100_000, icon: "🚀"),
ZapAmountItem(amount: 1_000_000, icon: "🤯"),
]
entries.append(def_item)
var entries = zapAmounts.map { ZapAmountItem(amount: $0.key, icon: $0.value) }
// Add default zap amount to the list only if it is not one of the preset entries so that it is not duplicated.
if zapAmounts[default_zap_amt] == nil {
let def_item = get_default_zap_amount_item(default_zap_amt)
entries.append(def_item)
}
entries.sort { $0.amount < $1.amount }
return entries

View File

@@ -440,21 +440,15 @@ fileprivate struct QRCameraView<Content: View>: View {
str.removeFirst("nostr:".count)
}
if let decoded = hex_decode(str),
str.count == 64
{
self.pubkey = Pubkey(Data(decoded))
return
let bech32 = Bech32Object.parse(str)
switch bech32 {
case .nprofile(let nprofile):
self.pubkey = nprofile.author
case .npub(let pubkey):
self.pubkey = pubkey
default:
return nil
}
if str.starts(with: "npub"),
let b32 = try? bech32_decode(str)
{
self.pubkey = Pubkey(b32.data)
return
}
return nil
}
}
}