Change state load method for reload
This commit is contained in:
parent
c15424abe5
commit
ed363963b3
@ -129,13 +129,13 @@ impl App {
|
||||
data_dir: PathBuf,
|
||||
internal_bitcoind: Option<Bitcoind>,
|
||||
) -> (App, Command<Message>) {
|
||||
let panels = Panels::new(
|
||||
let mut panels = Panels::new(
|
||||
&cache,
|
||||
wallet.clone(),
|
||||
data_dir.clone(),
|
||||
internal_bitcoind.as_ref(),
|
||||
);
|
||||
let cmd = panels.home.load(daemon.clone());
|
||||
let cmd = panels.home.reload(daemon.clone());
|
||||
(
|
||||
Self {
|
||||
panels,
|
||||
@ -180,7 +180,7 @@ impl App {
|
||||
_ => {}
|
||||
};
|
||||
self.panels.current = menu;
|
||||
self.panels.current().load(self.daemon.clone())
|
||||
self.panels.current_mut().reload(self.daemon.clone())
|
||||
}
|
||||
|
||||
pub fn subscription(&self) -> Subscription<Message> {
|
||||
|
||||
@ -150,7 +150,7 @@ impl State for CoinsPanel {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
let daemon1 = daemon.clone();
|
||||
let daemon2 = daemon.clone();
|
||||
Command::batch(vec![
|
||||
|
||||
@ -44,7 +44,7 @@ pub trait State {
|
||||
fn subscription(&self) -> Subscription<Message> {
|
||||
Subscription::none()
|
||||
}
|
||||
fn load(&self, _daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, _daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
Command::none()
|
||||
}
|
||||
}
|
||||
@ -211,8 +211,7 @@ impl State for Home {
|
||||
};
|
||||
}
|
||||
Message::View(view::Message::Reload) => {
|
||||
self.selected_event = None;
|
||||
return self.load(daemon);
|
||||
return self.reload(daemon);
|
||||
}
|
||||
Message::View(view::Message::Close) => {
|
||||
self.selected_event = None;
|
||||
@ -263,7 +262,8 @@ impl State for Home {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
self.selected_event = None;
|
||||
let daemon1 = daemon.clone();
|
||||
let daemon2 = daemon.clone();
|
||||
let daemon3 = daemon.clone();
|
||||
|
||||
@ -79,15 +79,8 @@ 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::View(view::Message::Reload) | Message::View(view::Message::Close) => {
|
||||
return self.reload(daemon);
|
||||
}
|
||||
Message::SpendTxs(res) => match res {
|
||||
Err(e) => self.warning = Some(e),
|
||||
@ -101,16 +94,6 @@ impl State for PsbtsPanel {
|
||||
self.import_tx = Some(ImportPsbtModal::new());
|
||||
}
|
||||
}
|
||||
Message::View(view::Message::Close) => {
|
||||
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::View(view::Message::Select(i)) => {
|
||||
if let Some(tx) = self.spend_txs.get(i) {
|
||||
let tx = psbt::PsbtState::new(self.wallet.clone(), tx.clone(), true);
|
||||
@ -140,7 +123,9 @@ impl State for PsbtsPanel {
|
||||
}
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
self.selected_tx = None;
|
||||
self.import_tx = None;
|
||||
let daemon = daemon.clone();
|
||||
Command::perform(
|
||||
async move { daemon.list_spend_transactions(None).map_err(|e| e.into()) },
|
||||
|
||||
@ -180,7 +180,7 @@ impl State for ReceivePanel {
|
||||
}
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
// Fill at least with one address, user will then use the generate button.
|
||||
if self.addresses.is_empty() {
|
||||
let daemon = daemon.clone();
|
||||
|
||||
@ -192,7 +192,7 @@ impl State for RecoveryPanel {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
let daemon = daemon.clone();
|
||||
Command::perform(
|
||||
async move {
|
||||
|
||||
@ -16,7 +16,7 @@ use liana::{
|
||||
use liana_ui::{component::form, widget::Element};
|
||||
|
||||
use crate::{
|
||||
app::{cache::Cache, error::Error, message::Message, view, State},
|
||||
app::{cache::Cache, error::Error, message::Message, state::settings::State, view},
|
||||
bitcoind::{RpcAuthType, RpcAuthValues},
|
||||
daemon::Daemon,
|
||||
};
|
||||
|
||||
@ -55,14 +55,14 @@ impl State for SettingsState {
|
||||
);
|
||||
self.setting
|
||||
.as_mut()
|
||||
.map(|s| s.load(daemon))
|
||||
.map(|s| s.reload(daemon))
|
||||
.unwrap_or_else(Command::none)
|
||||
}
|
||||
Message::View(view::Message::Settings(view::SettingsMessage::AboutSection)) => {
|
||||
self.setting = Some(AboutSettingsState::default().into());
|
||||
self.setting
|
||||
.as_mut()
|
||||
.map(|s| s.load(daemon))
|
||||
.map(|s| s.reload(daemon))
|
||||
.unwrap_or_else(Command::none)
|
||||
}
|
||||
Message::View(view::Message::Settings(view::SettingsMessage::EditWalletSettings)) => {
|
||||
@ -71,7 +71,7 @@ impl State for SettingsState {
|
||||
);
|
||||
self.setting
|
||||
.as_mut()
|
||||
.map(|s| s.load(daemon))
|
||||
.map(|s| s.reload(daemon))
|
||||
.unwrap_or_else(Command::none)
|
||||
}
|
||||
_ => self
|
||||
@ -97,6 +97,11 @@ impl State for SettingsState {
|
||||
view::settings::list(cache)
|
||||
}
|
||||
}
|
||||
|
||||
fn reload(&mut self, _daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
self.setting = None;
|
||||
Command::none()
|
||||
}
|
||||
}
|
||||
|
||||
impl From<SettingsState> for Box<dyn State> {
|
||||
@ -145,7 +150,7 @@ impl State for AboutSettingsState {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
Command::perform(
|
||||
async move { daemon.get_info().map_err(|e| e.into()) },
|
||||
Message::Info,
|
||||
|
||||
@ -180,7 +180,7 @@ impl State for WalletSettingsState {
|
||||
}
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
Command::perform(
|
||||
async move { daemon.get_info().map_err(|e| e.into()) },
|
||||
Message::Info,
|
||||
|
||||
@ -108,7 +108,7 @@ impl State for CreateSpendPanel {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
let daemon1 = daemon.clone();
|
||||
let daemon2 = daemon.clone();
|
||||
Command::batch(vec![
|
||||
|
||||
@ -121,12 +121,8 @@ 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;
|
||||
Message::View(view::Message::Reload) | Message::View(view::Message::Close) => {
|
||||
return self.reload(daemon);
|
||||
}
|
||||
Message::View(view::Message::Select(i)) => {
|
||||
self.selected_tx = Some(i);
|
||||
@ -229,7 +225,8 @@ impl State for TransactionsPanel {
|
||||
Command::none()
|
||||
}
|
||||
|
||||
fn load(&self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
fn reload(&mut self, daemon: Arc<dyn Daemon + Sync + Send>) -> Command<Message> {
|
||||
self.selected_tx = None;
|
||||
let daemon1 = daemon.clone();
|
||||
let daemon2 = daemon.clone();
|
||||
let daemon3 = daemon.clone();
|
||||
|
||||
@ -38,7 +38,7 @@ impl<S: State + Send + 'static> Sandbox<S> {
|
||||
}
|
||||
|
||||
pub async fn load(mut self, daemon: Arc<dyn Daemon + Sync + Send>, cache: &Cache) -> Self {
|
||||
let cmd = self.state.load(daemon.clone());
|
||||
let cmd = self.state.reload(daemon.clone());
|
||||
for action in cmd.actions() {
|
||||
if let Action::Future(f) = action {
|
||||
let msg = f.await;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user