Merge #1035: fix receive panel: reset addresses on reload

65f4a7581359edd7d9a1a593273238485955a3e6 fix receive panel: reset addresses on reload (edouardparis)

Pull request description:

  We reintroduce previous behavior:
  Reset the list when user leave and come back to the receive panel.

  close #1026

ACKs for top commit:
  jp1ac4:
    ACK 65f4a75813.

Tree-SHA512: 23aa6f58d2759f8d39d5068ebaa45a1529fd5f2692f0147a2b42e70423eb7ac3d0be26c5a00af1394e0cea22bca5c4e6a49f85b033ff2abcd392bf9fbd43c58d
This commit is contained in:
Antoine Poinsot 2024-03-25 15:57:05 +01:00
commit 53f9c72185
No known key found for this signature in database
GPG Key ID: E13FC145CD3F4304

View File

@ -40,12 +40,6 @@ pub struct Addresses {
labels: HashMap<String, String>, labels: HashMap<String, String>,
} }
impl Addresses {
fn is_empty(&self) -> bool {
self.list.is_empty()
}
}
impl Labelled for Addresses { impl Labelled for Addresses {
fn labelled(&self) -> Vec<LabelItem> { fn labelled(&self) -> Vec<LabelItem> {
self.list self.list
@ -200,21 +194,17 @@ impl State for ReceivePanel {
wallet: Arc<Wallet>, wallet: Arc<Wallet>,
) -> Command<Message> { ) -> Command<Message> {
self.wallet = wallet; self.wallet = wallet;
// Fill at least with one address, user will then use the generate button. self.addresses = Addresses::default();
if self.addresses.is_empty() { let daemon = daemon.clone();
let daemon = daemon.clone(); Command::perform(
Command::perform( async move {
async move { daemon
daemon .get_new_address()
.get_new_address() .map(|res| (res.address, res.derivation_index))
.map(|res| (res.address, res.derivation_index)) .map_err(|e| e.into())
.map_err(|e| e.into()) },
}, Message::ReceiveAddress,
Message::ReceiveAddress, )
)
} else {
Command::none()
}
} }
} }