11import { useSnapshot } from 'valtio' ;
2- import { useEffect , useLayoutEffect , useState } from 'react' ;
2+ import { useEffect , useLayoutEffect , useRef , useState } from 'react' ;
33import { ErrorUtil , type Platform } from '@reown/appkit-common-react-native' ;
44import {
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