mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-19 09:34:19 +01:00
propagate DefaultZapState to wallet ui
Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -64,7 +64,7 @@ pub use unknowns::{get_unknown_note_ids, NoteRefsUnkIdAction, SingleUnkIdAction,
|
|||||||
pub use urls::{supported_mime_hosted_at_url, SupportedMimeType, UrlMimes};
|
pub use urls::{supported_mime_hosted_at_url, SupportedMimeType, UrlMimes};
|
||||||
pub use user_account::UserAccount;
|
pub use user_account::UserAccount;
|
||||||
pub use wallet::{
|
pub use wallet::{
|
||||||
get_wallet_for_mut, GlobalWallet, Wallet, WalletError, WalletType, WalletUIState,
|
get_wallet_for_mut, GlobalWallet, Wallet, WalletError, WalletType, WalletUIState, ZapWallet,
|
||||||
};
|
};
|
||||||
pub use zaps::{
|
pub use zaps::{
|
||||||
AnyZapState, DefaultZapError, DefaultZapMsats, NoteZapTarget, NoteZapTargetOwned,
|
AnyZapState, DefaultZapError, DefaultZapMsats, NoteZapTarget, NoteZapTargetOwned,
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ use crate::{
|
|||||||
profile::EditProfileView,
|
profile::EditProfileView,
|
||||||
search::{FocusState, SearchView},
|
search::{FocusState, SearchView},
|
||||||
support::SupportView,
|
support::SupportView,
|
||||||
wallet::{WalletAction, WalletState, WalletView},
|
wallet::{get_default_zap_state, WalletAction, WalletState, WalletView},
|
||||||
RelayView,
|
RelayView,
|
||||||
},
|
},
|
||||||
Damus,
|
Damus,
|
||||||
@@ -545,8 +545,10 @@ fn render_nav_body(
|
|||||||
notedeck::WalletType::Auto => 's: {
|
notedeck::WalletType::Auto => 's: {
|
||||||
if let Some(cur_acc) = ctx.accounts.get_selected_account_mut() {
|
if let Some(cur_acc) = ctx.accounts.get_selected_account_mut() {
|
||||||
if let Some(wallet) = &mut cur_acc.wallet {
|
if let Some(wallet) = &mut cur_acc.wallet {
|
||||||
|
let default_zap_state = get_default_zap_state(&mut wallet.default_zap);
|
||||||
break 's WalletState::Wallet {
|
break 's WalletState::Wallet {
|
||||||
wallet: &mut wallet.wallet,
|
wallet: &mut wallet.wallet,
|
||||||
|
default_zap_state,
|
||||||
can_create_local_wallet: false,
|
can_create_local_wallet: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -559,8 +561,10 @@ fn render_nav_body(
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let default_zap_state = get_default_zap_state(&mut wallet.default_zap);
|
||||||
WalletState::Wallet {
|
WalletState::Wallet {
|
||||||
wallet: &mut wallet.wallet,
|
wallet: &mut wallet.wallet,
|
||||||
|
default_zap_state,
|
||||||
can_create_local_wallet: true,
|
can_create_local_wallet: true,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -578,8 +582,10 @@ fn render_nav_body(
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let default_zap_state = get_default_zap_state(&mut wallet.default_zap);
|
||||||
WalletState::Wallet {
|
WalletState::Wallet {
|
||||||
wallet: &mut wallet.wallet,
|
wallet: &mut wallet.wallet,
|
||||||
|
default_zap_state,
|
||||||
can_create_local_wallet: false,
|
can_create_local_wallet: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
use egui::Layout;
|
use egui::Layout;
|
||||||
use notedeck::{Accounts, GlobalWallet, Wallet, WalletError, WalletUIState};
|
use notedeck::{
|
||||||
|
Accounts, DefaultZapMsats, GlobalWallet, PendingDefaultZapState, Wallet, WalletError,
|
||||||
|
WalletUIState,
|
||||||
|
};
|
||||||
|
|
||||||
use crate::route::{Route, Router};
|
use crate::route::{Route, Router};
|
||||||
|
|
||||||
@@ -9,6 +12,7 @@ use super::widgets::styled_button;
|
|||||||
pub enum WalletState<'a> {
|
pub enum WalletState<'a> {
|
||||||
Wallet {
|
Wallet {
|
||||||
wallet: &'a mut Wallet,
|
wallet: &'a mut Wallet,
|
||||||
|
default_zap_state: DefaultZapState<'a>,
|
||||||
can_create_local_wallet: bool,
|
can_create_local_wallet: bool,
|
||||||
},
|
},
|
||||||
NoWallet {
|
NoWallet {
|
||||||
@@ -17,6 +21,26 @@ pub enum WalletState<'a> {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Msats = u64;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub enum DefaultZapState<'a> {
|
||||||
|
Pending(&'a mut PendingDefaultZapState), // User input
|
||||||
|
Valid(&'a Msats), // in milisats
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_default_zap_state(default_zap: &mut DefaultZapMsats) -> DefaultZapState {
|
||||||
|
if default_zap.pending.is_rewriting {
|
||||||
|
return DefaultZapState::Pending(&mut default_zap.pending);
|
||||||
|
}
|
||||||
|
|
||||||
|
if let Some(user_selection) = &default_zap.msats {
|
||||||
|
DefaultZapState::Valid(user_selection)
|
||||||
|
} else {
|
||||||
|
DefaultZapState::Pending(&mut default_zap.pending)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub enum WalletAction {
|
pub enum WalletAction {
|
||||||
SaveURI,
|
SaveURI,
|
||||||
@@ -105,6 +129,7 @@ impl<'a> WalletView<'a> {
|
|||||||
match &mut self.state {
|
match &mut self.state {
|
||||||
WalletState::Wallet {
|
WalletState::Wallet {
|
||||||
wallet,
|
wallet,
|
||||||
|
default_zap_state: _,
|
||||||
can_create_local_wallet,
|
can_create_local_wallet,
|
||||||
} => show_with_wallet(ui, wallet, *can_create_local_wallet),
|
} => show_with_wallet(ui, wallet, *can_create_local_wallet),
|
||||||
WalletState::NoWallet {
|
WalletState::NoWallet {
|
||||||
|
|||||||
Reference in New Issue
Block a user