gui: add reload cycle to reset state
When user clicks on the sidebar menu of the current panel, he expects the view to reset to its initial state without modal of transaction detail for example.
This commit is contained in:
parent
c268c3a093
commit
fa4483a4b7
@ -168,15 +168,6 @@ impl App {
|
||||
_ => PsbtsPanel::new(self.wallet.clone(), &self.cache.spend_txs).into(),
|
||||
};
|
||||
}
|
||||
menu::Menu::CreateSpendTx => {
|
||||
self.panels.create_spend = CreateSpendPanel::new(
|
||||
self.wallet.clone(),
|
||||
&self.cache.coins,
|
||||
self.cache.blockheight as u32,
|
||||
self.cache.network,
|
||||
)
|
||||
.into();
|
||||
}
|
||||
menu::Menu::RefreshCoins(preselected) => {
|
||||
self.panels.create_spend = CreateSpendPanel::new_self_send(
|
||||
self.wallet.clone(),
|
||||
|
||||
@ -210,6 +210,10 @@ impl State for Home {
|
||||
}
|
||||
};
|
||||
}
|
||||
Message::View(view::Message::Reload) => {
|
||||
self.selected_event = None;
|
||||
return self.load(daemon);
|
||||
}
|
||||
Message::View(view::Message::Close) => {
|
||||
self.selected_event = None;
|
||||
}
|
||||
|
||||
@ -79,6 +79,16 @@ impl State for PsbtsPanel {
|
||||
message: Message,
|
||||
) -> Command<Message> {
|
||||
match message {
|
||||
Message::View(view::Message::Reload) => {
|
||||
if self.selected_tx.is_some() {
|
||||
self.selected_tx = None;
|
||||
return self.load(daemon);
|
||||
}
|
||||
if self.import_tx.is_some() {
|
||||
self.import_tx = None;
|
||||
return self.load(daemon);
|
||||
}
|
||||
}
|
||||
Message::SpendTxs(res) => match res {
|
||||
Err(e) => self.warning = Some(e),
|
||||
Ok(txs) => {
|
||||
|
||||
@ -121,6 +121,10 @@ impl State for TransactionsPanel {
|
||||
self.warning = e.into();
|
||||
}
|
||||
},
|
||||
Message::View(view::Message::Reload) => {
|
||||
self.selected_tx = None;
|
||||
return self.load(daemon);
|
||||
}
|
||||
Message::View(view::Message::Close) => {
|
||||
self.selected_tx = None;
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ pub fn sidebar<'a>(menu: &Menu, cache: &'a Cache) -> Container<'a, Message> {
|
||||
let home_button = if *menu == Menu::Home {
|
||||
row!(
|
||||
button::menu_active(Some(home_icon()), "Home")
|
||||
.on_press(Message::Menu(Menu::Home))
|
||||
.on_press(Message::Reload)
|
||||
.width(iced::Length::Fill),
|
||||
menu_green_bar(),
|
||||
)
|
||||
@ -58,7 +58,7 @@ pub fn sidebar<'a>(menu: &Menu, cache: &'a Cache) -> Container<'a, Message> {
|
||||
let transactions_button = if *menu == Menu::Transactions {
|
||||
row!(
|
||||
button::menu_active(Some(history_icon()), "Transactions")
|
||||
.on_press(Message::Menu(Menu::Transactions))
|
||||
.on_press(Message::Reload)
|
||||
.width(iced::Length::Fill),
|
||||
menu_green_bar()
|
||||
)
|
||||
@ -85,7 +85,7 @@ pub fn sidebar<'a>(menu: &Menu, cache: &'a Cache) -> Container<'a, Message> {
|
||||
let psbt_button = if *menu == Menu::PSBTs {
|
||||
row!(
|
||||
button::menu_active(Some(history_icon()), "PSBTs")
|
||||
.on_press(Message::Menu(Menu::PSBTs))
|
||||
.on_press(Message::Reload)
|
||||
.width(iced::Length::Fill),
|
||||
menu_green_bar()
|
||||
)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user