From 054e72b1efb97afd0c3dda2c088483cc91ab0bf4 Mon Sep 17 00:00:00 2001 From: Marcos Rodriguez Velez Date: Sat, 20 Apr 2024 22:34:47 -0400 Subject: [PATCH] FIX: If theres only one wallet, select it by default --- screen/settings/DefaultView.tsx | 22 +++++++++++++++++----- screen/settings/GeneralSettings.tsx | 4 ++-- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/screen/settings/DefaultView.tsx b/screen/settings/DefaultView.tsx index eaaeb44d6..d13baef1f 100644 --- a/screen/settings/DefaultView.tsx +++ b/screen/settings/DefaultView.tsx @@ -1,9 +1,9 @@ -import React, { useContext, useEffect, useReducer } from 'react'; +import React, { useEffect, useReducer } from 'react'; import { View, TouchableWithoutFeedback, ScrollView } from 'react-native'; import { useNavigation } from '@react-navigation/native'; import { BlueCard, BlueText } from '../../BlueComponents'; import loc from '../../loc'; -import { BlueStorageContext } from '../../blue_modules/storage-context'; +import { useStorage } from '../../blue_modules/storage-context'; import ListItem from '../../components/ListItem'; import useOnAppLaunch from '../../hooks/useOnAppLaunch'; import { NativeStackNavigationProp } from '@react-navigation/native-stack'; @@ -45,7 +45,7 @@ const DefaultView: React.FC = () => { }); const { navigate, pop } = useNavigation(); - const { wallets } = useContext(BlueStorageContext); + const { wallets } = useStorage(); const { isViewAllWalletsEnabled, getSelectedDefaultWallet, setSelectedDefaultWallet, setViewAllWalletsEnabled } = useOnAppLaunch(); useEffect(() => { @@ -67,7 +67,13 @@ const DefaultView: React.FC = () => { const onViewAllWalletsSwitchValueChanged = async (value: boolean) => { await setViewAllWalletsEnabled(value); dispatch({ type: ActionType.SetViewAllWalletsSwitch, payload: value }); - if (!value) { + + if (!value && wallets.length === 1) { + // Automatically select the wallet if there is only one + const selectedWallet = wallets[0]; + await setSelectedDefaultWallet(selectedWallet.getID()); + dispatch({ type: ActionType.SetDefaultWalletLabel, payload: selectedWallet.getLabel() }); + } else if (!value) { const selectedWalletID = await getSelectedDefaultWallet(); const selectedWallet = wallets.find(wallet => wallet.getID() === selectedWalletID); if (selectedWallet) { @@ -104,7 +110,13 @@ const DefaultView: React.FC = () => { {loc.settings.default_desc} {!state.isViewAllWalletsSwitchEnabled && ( - + )} diff --git a/screen/settings/GeneralSettings.tsx b/screen/settings/GeneralSettings.tsx index 323713de8..cae7704c2 100644 --- a/screen/settings/GeneralSettings.tsx +++ b/screen/settings/GeneralSettings.tsx @@ -40,8 +40,8 @@ const GeneralSettings: React.FC = () => { }; return ( - - {wallets.length > 1 && ( + + {wallets.length > 0 && ( <> {/* @ts-ignore: Fix later */} navigate('DefaultView')} title={loc.settings.default_title} chevron />