mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2025-02-22 15:04:50 +01:00
REF: Store ID, not whole wallet object
This commit is contained in:
parent
2f00b83e63
commit
dd9aa0463e
4 changed files with 22 additions and 17 deletions
|
@ -93,16 +93,16 @@ function DeviceQuickActions(): JSX.Element | null {
|
|||
}
|
||||
} else {
|
||||
if (!(await isViewAllWalletsEnabled())) {
|
||||
const selectedDefaultWallet: TWallet = (await getSelectedDefaultWallet()) as TWallet;
|
||||
const selectedDefaultWalletID = (await getSelectedDefaultWallet()) as string;
|
||||
const selectedDefaultWallet = wallets.find((w: TWallet) => w.getID() === selectedDefaultWalletID);
|
||||
if (selectedDefaultWallet) {
|
||||
const wallet = wallets.find(w => w.getID() === selectedDefaultWallet.getID());
|
||||
if (wallet) {
|
||||
if (selectedDefaultWallet) {
|
||||
NavigationService.dispatch(
|
||||
CommonActions.navigate({
|
||||
name: 'WalletTransactions',
|
||||
params: {
|
||||
walletID: wallet.getID(),
|
||||
walletType: wallet.type,
|
||||
walletID: selectedDefaultWalletID,
|
||||
walletType: selectedDefaultWallet.type,
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
|
|
@ -7,7 +7,7 @@ const useOnAppLaunch = () => {
|
|||
const STORAGE_KEY = 'ONAPP_LAUNCH_SELECTED_DEFAULT_WALLET_KEY';
|
||||
const { wallets } = useContext(BlueStorageContext);
|
||||
|
||||
const getSelectedDefaultWallet = useCallback(async (): Promise<TWallet | undefined> => {
|
||||
const getSelectedDefaultWallet = useCallback(async (): Promise<string | undefined> => {
|
||||
let selectedWallet: TWallet | undefined;
|
||||
try {
|
||||
const selectedWalletID = JSON.parse((await AsyncStorage.getItem(STORAGE_KEY)) || 'null');
|
||||
|
@ -23,7 +23,7 @@ const useOnAppLaunch = () => {
|
|||
} catch (_e) {
|
||||
return undefined;
|
||||
}
|
||||
return selectedWallet;
|
||||
return selectedWallet.getID();
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [STORAGE_KEY]);
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ import { NativeStackNavigationProp } from '@react-navigation/native-stack';
|
|||
import { TWallet } from '../../class/wallets/types';
|
||||
|
||||
type RootStackParamList = {
|
||||
SelectWallet: { onWalletSelect: (wallet: TWallet) => void };
|
||||
SelectWallet: { onWalletSelect: (wallet: TWallet) => void; onChainRequireSend: boolean };
|
||||
};
|
||||
|
||||
type DefaultViewNavigationProp = NativeStackNavigationProp<RootStackParamList, 'SelectWallet'>;
|
||||
|
@ -26,10 +26,11 @@ const DefaultView: React.FC = () => {
|
|||
(async () => {
|
||||
const newViewAllWalletsEnabled: boolean = await isViewAllWalletsEnabled();
|
||||
let newDefaultWalletLabel: string = '';
|
||||
const wallet = await getSelectedDefaultWallet();
|
||||
const walletID = await getSelectedDefaultWallet();
|
||||
|
||||
if (wallet) {
|
||||
newDefaultWalletLabel = wallet.getLabel();
|
||||
if (walletID) {
|
||||
const w = wallets.find(wallet => wallet.getID() === walletID);
|
||||
if (w) newDefaultWalletLabel = w.getLabel();
|
||||
}
|
||||
setDefaultWalletLabel(newDefaultWalletLabel);
|
||||
setIsViewAllWalletsSwitchEnabled(newViewAllWalletsEnabled);
|
||||
|
@ -43,7 +44,8 @@ const DefaultView: React.FC = () => {
|
|||
setIsViewAllWalletsSwitchEnabled(true);
|
||||
setDefaultWalletLabel('');
|
||||
} else {
|
||||
const selectedWallet = await getSelectedDefaultWallet();
|
||||
const selectedWalletID = await getSelectedDefaultWallet();
|
||||
const selectedWallet = wallets.find(wallet => wallet.getID() === selectedWalletID);
|
||||
if (selectedWallet) {
|
||||
setDefaultWalletLabel(selectedWallet.getLabel());
|
||||
setIsViewAllWalletsSwitchEnabled(false);
|
||||
|
@ -52,7 +54,7 @@ const DefaultView: React.FC = () => {
|
|||
};
|
||||
|
||||
const selectWallet = () => {
|
||||
navigate('SelectWallet', { onWalletSelect: onWalletSelectValueChanged });
|
||||
navigate('SelectWallet', { onWalletSelect: onWalletSelectValueChanged, onChainRequireSend: false });
|
||||
};
|
||||
|
||||
const onWalletSelectValueChanged = async (wallet: TWallet) => {
|
||||
|
|
|
@ -12,17 +12,20 @@ import { BlueStorageContext } from '../../blue_modules/storage-context';
|
|||
import { useTheme } from '../../components/themes';
|
||||
import triggerHapticFeedback, { HapticFeedbackTypes } from '../../blue_modules/hapticFeedback';
|
||||
import SafeArea from '../../components/SafeArea';
|
||||
import { Chain } from '../../models/bitcoinUnits';
|
||||
|
||||
const SelectWallet = () => {
|
||||
const { chainType, onWalletSelect, availableWallets, noWalletExplanationText } = useRoute().params;
|
||||
const { chainType, onWalletSelect, availableWallets, noWalletExplanationText, onChainRequireSend = false } = useRoute().params;
|
||||
const [isLoading, setIsLoading] = useState(true);
|
||||
const { pop, navigate, setOptions, getParent } = useNavigation();
|
||||
const { wallets } = useContext(BlueStorageContext);
|
||||
const { colors, closeImage } = useTheme();
|
||||
const isModal = useNavigationState(state => state.routes.length) === 1;
|
||||
let data = chainType
|
||||
? wallets.filter(item => item.chain === chainType && item.allowSend())
|
||||
: wallets.filter(item => item.allowSend()) || [];
|
||||
let data = !onChainRequireSend
|
||||
? wallets.filter(item => item.chain === Chain.ONCHAIN) || []
|
||||
: chainType
|
||||
? wallets.filter(item => item.chain === chainType && item.allowSend())
|
||||
: wallets.filter(item => item.allowSend()) || [];
|
||||
|
||||
if (availableWallets && availableWallets.length > 0) {
|
||||
// availableWallets if provided, overrides chainType argument and `allowSend()` check
|
||||
|
|
Loading…
Add table
Reference in a new issue