@@ -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