mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-19 09:34:19 +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::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 nostrdb::{Ndb, Note, Transaction};
|
||||
|
||||
@@ -180,10 +180,14 @@ impl Accounts {
|
||||
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()
|
||||
}
|
||||
|
||||
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 {
|
||||
&self.cache.selected().data
|
||||
}
|
||||
|
||||
@@ -28,9 +28,7 @@ pub fn get_current_wallet<'a>(
|
||||
accounts: &'a mut Accounts,
|
||||
global_wallet: &'a mut GlobalWallet,
|
||||
) -> Option<&'a mut ZapWallet> {
|
||||
let acc = accounts.get_selected_account_mut();
|
||||
|
||||
let Some(wallet) = &mut acc.wallet else {
|
||||
let Some(wallet) = accounts.get_selected_wallet_mut() else {
|
||||
return global_wallet.wallet.as_mut();
|
||||
};
|
||||
|
||||
|
||||
@@ -98,7 +98,7 @@ fn execute_note_action(
|
||||
router_action = Some(RouterAction::route_to(Route::quote(note_id)));
|
||||
}
|
||||
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;
|
||||
|
||||
|
||||
@@ -686,9 +686,7 @@ fn render_nav_body(
|
||||
Route::Wallet(wallet_type) => {
|
||||
let state = match wallet_type {
|
||||
notedeck::WalletType::Auto => 's: {
|
||||
if let Some(cur_acc_wallet) =
|
||||
&mut ctx.accounts.get_selected_account_mut().wallet
|
||||
{
|
||||
if let Some(cur_acc_wallet) = ctx.accounts.get_selected_wallet_mut() {
|
||||
let default_zap_state =
|
||||
get_default_zap_state(&mut cur_acc_wallet.default_zap);
|
||||
break 's WalletState::Wallet {
|
||||
@@ -713,8 +711,8 @@ fn render_nav_body(
|
||||
}
|
||||
}
|
||||
notedeck::WalletType::Local => 's: {
|
||||
let cur_acc = ctx.accounts.get_selected_account_mut();
|
||||
let Some(wallet) = &mut cur_acc.wallet else {
|
||||
let cur_acc = ctx.accounts.get_selected_wallet_mut();
|
||||
let Some(wallet) = cur_acc else {
|
||||
break 's WalletState::NoWallet {
|
||||
state: &mut ctx.global_wallet.ui_state,
|
||||
show_local_only: false,
|
||||
|
||||
@@ -63,9 +63,8 @@ impl WalletAction {
|
||||
let ui_state = &mut global_wallet.ui_state;
|
||||
if ui_state.for_local_only {
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user