damus

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

commit 15849e290e185d4340fd6338123d58e6922070bf
parent 6ed562ed24bf2dfa2aa17401101f9afcc56b295d
Author: Swift <scoder1747@gmail.com>
Date:   Sun, 16 Apr 2023 00:48:49 -0400

Fixed repost turning green too early and not reposting sometimes

Changelog-Fixed: Fixed repost turning green too early and not reposting sometimes

Diffstat:
Mdamus/ContentView.swift | 8++++++--
Mdamus/Views/ActionBar/EventActionBar.swift | 6++++--
2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/damus/ContentView.swift b/damus/ContentView.swift @@ -83,6 +83,7 @@ struct ContentView: View { @State var filter_state : FilterState = .posts_and_replies @State private var isSideBarOpened = false @StateObject var home: HomeModel = HomeModel() + @State var shouldShowBoostAlert = false // connect retry timer let timer = Timer.publish(every: 4, on: .main, in: .common).autoconnect() @@ -353,7 +354,10 @@ struct ContentView: View { } .onReceive(handle_notify(.boost)) { notif in - current_boost = (notif.object as? NostrEvent) + if let ev = (notif.object as? NostrEvent) { + current_boost = ev + shouldShowBoostAlert = true + } } .onReceive(handle_notify(.reply)) { notif in let ev = notif.object as! NostrEvent @@ -583,7 +587,7 @@ struct ContentView: View { Text("Could not find user to mute...", comment: "Alert message to indicate that the muted user could not be found.") } }) - .alert(NSLocalizedString("Repost", comment: "Title of alert for confirming to repost a post."), isPresented: $current_boost.mappedToBool()) { + .alert(NSLocalizedString("Repost", comment: "Title of alert for confirming to repost a post."), isPresented: $shouldShowBoostAlert) { Button(NSLocalizedString("Cancel", comment: "Button to cancel out of reposting a post.")) { current_boost = nil } diff --git a/damus/Views/ActionBar/EventActionBar.swift b/damus/Views/ActionBar/EventActionBar.swift @@ -142,8 +142,10 @@ struct EventActionBar: View { } let boost = make_boost_event(pubkey: damus_state.keypair.pubkey, privkey: privkey, boosted: self.event) - - self.bar.our_boost = boost + + // As we will still have to wait for the confirmation from alert for repost, we do not turn it green yet. + // However, turning green handled from EventActionBar spontaneously once reposted + // self.bar.our_boost = boost notify(.boost, boost) }