Skip to content

Commit 56e1c81

Browse files
Merge pull request #503 from reown-com/fix/clear-old-uri
fix: clear old uri before creating a new one on connecting view
2 parents 4a77f2b + 5cb1e29 commit 56e1c81

File tree

1 file changed

+9
-11
lines changed
  • packages/appkit/src/views/w3m-connecting-view

1 file changed

+9
-11
lines changed

packages/appkit/src/views/w3m-connecting-view/index.tsx

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { useSnapshot } from 'valtio';
2-
import { useEffect, useLayoutEffect, useState } from 'react';
2+
import { useEffect, useLayoutEffect, useRef, useState } from 'react';
33
import { ErrorUtil, type Platform } from '@reown/appkit-common-react-native';
44
import {
55
WcController,
@@ -22,23 +22,23 @@ export function ConnectingView() {
2222
const { connect } = useInternalAppKit();
2323
const { installed } = useSnapshot(ApiController.state);
2424
const { data } = RouterController.state;
25-
const [lastRetry, setLastRetry] = useState(Date.now());
25+
const lastRetryRef = useRef<number>(Date.now());
2626
const isQr = !data?.wallet;
2727
const isInstalled = !!installed?.find(wallet => wallet.id === data?.wallet?.id);
2828

2929
const [platform, setPlatform] = useState<Platform>();
3030
const [platforms, setPlatforms] = useState<Platform[]>([]);
3131

3232
const onRetry = () => {
33-
if (CoreHelperUtil.isAllowedRetry(lastRetry)) {
34-
setLastRetry(Date.now());
33+
if (CoreHelperUtil.isAllowedRetry(lastRetryRef.current)) {
34+
lastRetryRef.current = Date.now();
3535
initializeConnection(true);
3636
} else {
3737
SnackController.showError('Please wait a second before retrying');
3838
}
3939
};
4040

41-
const initializeConnection = async (retry = false, retryTimestamp?: number) => {
41+
const initializeConnection = async (retry = false) => {
4242
try {
4343
const { wcPairingExpiry } = WcController.state;
4444
const { data: routeData } = RouterController.state;
@@ -73,11 +73,9 @@ export function ConnectingView() {
7373
}
7474
});
7575

76-
const currentRetryTime = retryTimestamp ?? lastRetry;
77-
if (isQr && CoreHelperUtil.isAllowedRetry(currentRetryTime)) {
78-
const newRetryTime = Date.now();
79-
setLastRetry(newRetryTime);
80-
initializeConnection(true, newRetryTime);
76+
if (isQr && CoreHelperUtil.isAllowedRetry(lastRetryRef.current)) {
77+
lastRetryRef.current = Date.now();
78+
initializeConnection(true);
8179
}
8280
}
8381
};
@@ -107,7 +105,7 @@ export function ConnectingView() {
107105
}, [data, isInstalled]);
108106

109107
useEffect(() => {
110-
initializeConnection();
108+
initializeConnection(true);
111109
let _interval: NodeJS.Timeout;
112110

113111
// Check if the pairing expired every 10 seconds. If expired, it will create a new uri.

0 commit comments

Comments
 (0)