Skip to content

Commit 0103e99

Browse files
authored
fix(settings): update peer on connection change (#1981)
1 parent 503c426 commit 0103e99

File tree

1 file changed

+22
-23
lines changed

1 file changed

+22
-23
lines changed

src/screens/Settings/ElectrumConfig/index.tsx

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { err, ok, Result } from '@synonymdev/result';
44
import Url from 'url-parse';
55
import { useTranslation } from 'react-i18next';
66
import isEqual from 'lodash/isEqual';
7+
import { EProtocol } from 'beignet';
78

89
import { View, TextInput, ScrollView } from '../../../styles/components';
910
import { BodyM, Caption13Up } from '../../../styles/text';
1011
import { ScanIcon } from '../../../styles/icons';
12+
import useBreakpoints from '../../../styles/breakpoints';
1113
import { useAppDispatch, useAppSelector } from '../../../hooks/redux';
1214
import { updateUi } from '../../../store/slices/ui';
1315
import { addElectrumPeer } from '../../../store/slices/settings';
@@ -26,12 +28,11 @@ import {
2628
} from '../../../utils/electrum';
2729
import { showToast } from '../../../utils/notifications';
2830
import { getConnectedPeer, IPeerData } from '../../../utils/wallet/electrum';
29-
import type { SettingsScreenProps } from '../../../navigation/types';
30-
import { EProtocol } from 'beignet';
3131
import { refreshWallet, rescanAddresses } from '../../../utils/wallet';
3232
import { EAvailableNetwork } from '../../../utils/networks';
3333
import { updateActivityList } from '../../../store/utils/activity';
34-
import useBreakpoints from '../../../styles/breakpoints';
34+
import { isConnectedToElectrumSelector } from '../../../store/reselect/ui';
35+
import type { SettingsScreenProps } from '../../../navigation/types';
3536

3637
type RadioButtonItem = { label: string; value: EProtocol };
3738

@@ -90,6 +91,7 @@ const ElectrumConfig = ({
9091
const { t } = useTranslation('settings');
9192
const br = useBreakpoints();
9293
const dispatch = useAppDispatch();
94+
const isConnectedToElectrum = useAppSelector(isConnectedToElectrumSelector);
9395
const selectedNetwork = useAppSelector(selectedNetworkSelector);
9496
const customElectrumPeers = useAppSelector((state) => {
9597
return customElectrumPeersSelector(state, selectedNetwork);
@@ -98,27 +100,25 @@ const ElectrumConfig = ({
98100
const [connectedPeer, setConnectedPeer] = useState<IPeerData>();
99101
const [loading, setLoading] = useState(false);
100102
const [host, setHost] = useState(savedPeer.host);
101-
const [protocol, setProtocol] = useState<EProtocol>(savedPeer.protocol);
102-
const [port, setPort] = useState<string>(
103-
savedPeer[savedPeer.protocol].toString(),
104-
);
103+
const [port, setPort] = useState(savedPeer[savedPeer.protocol].toString());
104+
const [protocol, setProtocol] = useState(savedPeer.protocol);
105105

106106
useEffect(() => {
107+
const getAndUpdateConnectedPeer = async (): Promise<void> => {
108+
const peerInfo = await getConnectedPeer();
109+
if (peerInfo.isOk()) {
110+
setConnectedPeer({
111+
host: peerInfo.value.host,
112+
port: peerInfo.value.port.toString(),
113+
protocol: peerInfo.value.protocol,
114+
});
115+
} else {
116+
setConnectedPeer(undefined);
117+
}
118+
};
119+
107120
getAndUpdateConnectedPeer();
108-
}, []);
109-
110-
const getAndUpdateConnectedPeer = async (): Promise<void> => {
111-
const peerInfo = await getConnectedPeer();
112-
if (peerInfo.isOk()) {
113-
setConnectedPeer({
114-
host: peerInfo.value.host,
115-
port: peerInfo.value.port.toString(),
116-
protocol: peerInfo.value.protocol,
117-
});
118-
} else {
119-
setConnectedPeer(undefined);
120-
}
121-
};
121+
}, [isConnectedToElectrum]);
122122

123123
const connectAndAddPeer = async (peerData: {
124124
host: string;
@@ -169,7 +169,7 @@ const ElectrumConfig = ({
169169
shouldClearAddresses: false,
170170
shouldClearTransactions: true,
171171
});
172-
await refreshWallet({});
172+
await refreshWallet();
173173
updateActivityList();
174174
}
175175
} else {
@@ -181,7 +181,6 @@ const ElectrumConfig = ({
181181
description: t('es.server_error_description'),
182182
});
183183
}
184-
await getAndUpdateConnectedPeer();
185184
} catch (e) {
186185
console.log(e);
187186
} finally {

0 commit comments

Comments
 (0)