mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-24 03:24:21 +01:00
don't expose mutable access to UserAccount
it's not preferable that the full mutable access is available to `ZapWallet`, but this PR is becoming too big already Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -8,7 +8,7 @@ use crate::account::relay::{
|
|||||||
};
|
};
|
||||||
use crate::storage::AccountStorageWriter;
|
use crate::storage::AccountStorageWriter;
|
||||||
use crate::user_account::UserAccountSerializable;
|
use crate::user_account::UserAccountSerializable;
|
||||||
use crate::{AccountStorage, MuteFun, SingleUnkIdAction, UnknownIds, UserAccount};
|
use crate::{AccountStorage, MuteFun, SingleUnkIdAction, UnknownIds, UserAccount, ZapWallet};
|
||||||
use enostr::{ClientMessage, FilledKeypair, Keypair, Pubkey, RelayPool};
|
use enostr::{ClientMessage, FilledKeypair, Keypair, Pubkey, RelayPool};
|
||||||
use nostrdb::{Ndb, Note, Transaction};
|
use nostrdb::{Ndb, Note, Transaction};
|
||||||
|
|
||||||
@@ -180,10 +180,14 @@ impl Accounts {
|
|||||||
self.get_selected_account().wallet.is_some()
|
self.get_selected_account().wallet.is_some()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_selected_account_mut(&mut self) -> &mut UserAccount {
|
fn get_selected_account_mut(&mut self) -> &mut UserAccount {
|
||||||
self.cache.selected_mut()
|
self.cache.selected_mut()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn get_selected_wallet_mut(&mut self) -> Option<&mut ZapWallet> {
|
||||||
|
self.cache.selected_mut().wallet.as_mut()
|
||||||
|
}
|
||||||
|
|
||||||
fn get_selected_account_data(&self) -> &AccountData {
|
fn get_selected_account_data(&self) -> &AccountData {
|
||||||
&self.cache.selected().data
|
&self.cache.selected().data
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,9 +28,7 @@ pub fn get_current_wallet<'a>(
|
|||||||
accounts: &'a mut Accounts,
|
accounts: &'a mut Accounts,
|
||||||
global_wallet: &'a mut GlobalWallet,
|
global_wallet: &'a mut GlobalWallet,
|
||||||
) -> Option<&'a mut ZapWallet> {
|
) -> Option<&'a mut ZapWallet> {
|
||||||
let acc = accounts.get_selected_account_mut();
|
let Some(wallet) = accounts.get_selected_wallet_mut() else {
|
||||||
|
|
||||||
let Some(wallet) = &mut acc.wallet else {
|
|
||||||
return global_wallet.wallet.as_mut();
|
return global_wallet.wallet.as_mut();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ fn execute_note_action(
|
|||||||
router_action = Some(RouterAction::route_to(Route::quote(note_id)));
|
router_action = Some(RouterAction::route_to(Route::quote(note_id)));
|
||||||
}
|
}
|
||||||
NoteAction::Zap(zap_action) => {
|
NoteAction::Zap(zap_action) => {
|
||||||
let cur_acc = accounts.get_selected_account_mut();
|
let cur_acc = accounts.get_selected_account();
|
||||||
|
|
||||||
let sender = cur_acc.key.pubkey;
|
let sender = cur_acc.key.pubkey;
|
||||||
|
|
||||||
|
|||||||
@@ -686,9 +686,7 @@ fn render_nav_body(
|
|||||||
Route::Wallet(wallet_type) => {
|
Route::Wallet(wallet_type) => {
|
||||||
let state = match wallet_type {
|
let state = match wallet_type {
|
||||||
notedeck::WalletType::Auto => 's: {
|
notedeck::WalletType::Auto => 's: {
|
||||||
if let Some(cur_acc_wallet) =
|
if let Some(cur_acc_wallet) = ctx.accounts.get_selected_wallet_mut() {
|
||||||
&mut ctx.accounts.get_selected_account_mut().wallet
|
|
||||||
{
|
|
||||||
let default_zap_state =
|
let default_zap_state =
|
||||||
get_default_zap_state(&mut cur_acc_wallet.default_zap);
|
get_default_zap_state(&mut cur_acc_wallet.default_zap);
|
||||||
break 's WalletState::Wallet {
|
break 's WalletState::Wallet {
|
||||||
@@ -713,8 +711,8 @@ fn render_nav_body(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
notedeck::WalletType::Local => 's: {
|
notedeck::WalletType::Local => 's: {
|
||||||
let cur_acc = ctx.accounts.get_selected_account_mut();
|
let cur_acc = ctx.accounts.get_selected_wallet_mut();
|
||||||
let Some(wallet) = &mut cur_acc.wallet else {
|
let Some(wallet) = cur_acc else {
|
||||||
break 's WalletState::NoWallet {
|
break 's WalletState::NoWallet {
|
||||||
state: &mut ctx.global_wallet.ui_state,
|
state: &mut ctx.global_wallet.ui_state,
|
||||||
show_local_only: false,
|
show_local_only: false,
|
||||||
|
|||||||
@@ -63,9 +63,8 @@ impl WalletAction {
|
|||||||
let ui_state = &mut global_wallet.ui_state;
|
let ui_state = &mut global_wallet.ui_state;
|
||||||
if ui_state.for_local_only {
|
if ui_state.for_local_only {
|
||||||
ui_state.for_local_only = false;
|
ui_state.for_local_only = false;
|
||||||
let cur_acc = accounts.get_selected_account_mut();
|
|
||||||
|
|
||||||
if cur_acc.wallet.is_some() {
|
if accounts.get_selected_wallet_mut().is_some() {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user