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 user_account::UserAccount;
|
||||
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::{
|
||||
AnyZapState, DefaultZapError, DefaultZapMsats, NoteZapTarget, NoteZapTargetOwned,
|
||||
|
||||
@@ -19,7 +19,7 @@ use crate::{
|
||||
profile::EditProfileView,
|
||||
search::{FocusState, SearchView},
|
||||
support::SupportView,
|
||||
wallet::{WalletAction, WalletState, WalletView},
|
||||
wallet::{get_default_zap_state, WalletAction, WalletState, WalletView},
|
||||
RelayView,
|
||||
},
|
||||
Damus,
|
||||
@@ -545,8 +545,10 @@ fn render_nav_body(
|
||||
notedeck::WalletType::Auto => 's: {
|
||||
if let Some(cur_acc) = ctx.accounts.get_selected_account_mut() {
|
||||
if let Some(wallet) = &mut cur_acc.wallet {
|
||||
let default_zap_state = get_default_zap_state(&mut wallet.default_zap);
|
||||
break 's WalletState::Wallet {
|
||||
wallet: &mut wallet.wallet,
|
||||
default_zap_state,
|
||||
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 {
|
||||
wallet: &mut wallet.wallet,
|
||||
default_zap_state,
|
||||
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 {
|
||||
wallet: &mut wallet.wallet,
|
||||
default_zap_state,
|
||||
can_create_local_wallet: false,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
use egui::Layout;
|
||||
use notedeck::{Accounts, GlobalWallet, Wallet, WalletError, WalletUIState};
|
||||
use notedeck::{
|
||||
Accounts, DefaultZapMsats, GlobalWallet, PendingDefaultZapState, Wallet, WalletError,
|
||||
WalletUIState,
|
||||
};
|
||||
|
||||
use crate::route::{Route, Router};
|
||||
|
||||
@@ -9,6 +12,7 @@ use super::widgets::styled_button;
|
||||
pub enum WalletState<'a> {
|
||||
Wallet {
|
||||
wallet: &'a mut Wallet,
|
||||
default_zap_state: DefaultZapState<'a>,
|
||||
can_create_local_wallet: bool,
|
||||
},
|
||||
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)]
|
||||
pub enum WalletAction {
|
||||
SaveURI,
|
||||
@@ -105,6 +129,7 @@ impl<'a> WalletView<'a> {
|
||||
match &mut self.state {
|
||||
WalletState::Wallet {
|
||||
wallet,
|
||||
default_zap_state: _,
|
||||
can_create_local_wallet,
|
||||
} => show_with_wallet(ui, wallet, *can_create_local_wallet),
|
||||
WalletState::NoWallet {
|
||||
|
||||
Reference in New Issue
Block a user