@@ -18,6 +18,7 @@ import {
1818}  from  'react' ; 
1919import  {  motion  }  from  'framer-motion' ; 
2020import  {  useTranslation  }  from  'react-i18next' ; 
21+ import  {  isError  }  from  'ethers' ; 
2122import  {  UnableToConnectDrawer  }  from  '../../../components/UnableToConnectDrawer/UnableToConnectDrawer' ; 
2223import  {  ChangedYourMindDrawer  }  from  '../../../components/ChangedYourMindDrawer/ChangedYourMindDrawer' ; 
2324import  {  ConnectWidgetViews  }  from  '../../../context/view-context/ConnectViewContextTypes' ; 
@@ -79,7 +80,10 @@ export function WalletList(props: WalletListProps) {
7980  const  {  isWalletConnectEnabled,  openWalletConnectModal }  =  useWalletConnect ( ) ; 
8081  const  walletConnectItemRef  =  useRef ( null ) ; 
8182  const  [ showChangedYourMindDrawer ,  setShowChangedYourMindDrawer ]  =  useState ( false ) ; 
82-   const  [ showUnableToConnectDrawer ,  setShowUnableToConnectDrawer ]  =  useState ( false ) ; 
83+   const  [ unableToConnectDrawerState ,  setUnableToConnectDrawerState ]  =  useState ( { 
84+     visible : false , 
85+     message : undefined  as  string  |  undefined , 
86+   } ) ; 
8387  const  [ showNonPassportWarning ,  setShowNonPassportWarning ]  =  useState ( false ) ; 
8488  const  [ chosenProviderDetail ,  setChosenProviderDetail ]  =  useState < EIP6963ProviderDetail > ( ) ; 
8589
@@ -200,14 +204,22 @@ export function WalletList(props: WalletListProps) {
200204            // eslint-disable-next-line no-console 
201205            console . error ( 'Connect error' ,  err ) ; 
202206
203-             setShowUnableToConnectDrawer ( true ) ; 
207+             setUnableToConnectDrawerState ( {   visible :  true ,   message :  undefined   } ) ; 
204208          } 
205209        } 
206210      }  catch  ( err : any )  { 
211+         if  ( 
212+           isError ( err ,  'INVALID_ARGUMENT' ) 
213+           &&  err . message . includes ( 'value={ "ethereumProvider": { "isPassport": true } }' ) )  { 
214+           setUnableToConnectDrawerState ( { 
215+             visible : true , 
216+             message : t ( 'drawers.walletConnectionError.passportProviderError.body' ) , 
217+           } ) ; 
218+           return ; 
219+         } 
207220        // eslint-disable-next-line no-console 
208221        console . error ( 'Connect unknown error' ,  err ) ; 
209- 
210-         setShowUnableToConnectDrawer ( true ) ; 
222+         setUnableToConnectDrawerState ( {  visible : true ,  message : undefined  } ) ; 
211223      } 
212224    } , 
213225    [ checkout ] , 
@@ -288,7 +300,7 @@ export function WalletList(props: WalletListProps) {
288300      } 
289301
290302      setShowChangedYourMindDrawer ( false ) ; 
291-       setShowUnableToConnectDrawer ( false ) ; 
303+       setUnableToConnectDrawerState ( {   visible :  false ,   message :  undefined   } ) ; 
292304      setChosenProviderDetail ( providerDetail ) ; 
293305      track ( { 
294306        userJourney : UserJourney . CONNECT , 
@@ -444,10 +456,15 @@ export function WalletList(props: WalletListProps) {
444456      /> 
445457
446458      < UnableToConnectDrawer 
447-         visible = { showUnableToConnectDrawer } 
459+         visible = { unableToConnectDrawerState . visible } 
448460        checkout = { checkout ! } 
449-         onCloseDrawer = { ( )  =>  setShowUnableToConnectDrawer ( false ) } 
450-         onTryAgain = { ( )  =>  setShowUnableToConnectDrawer ( false ) } 
461+         onCloseDrawer = { ( )  =>  { 
462+           setUnableToConnectDrawerState ( {  visible : false ,  message : undefined  } ) ; 
463+         } } 
464+         onTryAgain = { ( )  =>  { 
465+           setUnableToConnectDrawerState ( {  visible : false ,  message : undefined  } ) ; 
466+         } } 
467+         message = { unableToConnectDrawerState . message } 
451468      /> 
452469
453470      < NonPassportWarningDrawer 
0 commit comments