@@ -31,7 +31,6 @@ import {
31
31
selectPreviouslySelectedEvmAccount ,
32
32
selectSelectedInternalAccountFormattedAddress ,
33
33
} from '../../../selectors/accountsController' ;
34
- import { isDefaultAccountName } from '../../../util/ENSUtils' ;
35
34
import Logger from '../../../util/Logger' ;
36
35
import {
37
36
getAddressAccountType ,
@@ -43,12 +42,15 @@ import {
43
42
prefixUrlWithProtocol ,
44
43
} from '../../../util/browser' ;
45
44
import { getActiveTabUrl } from '../../../util/transactions' ;
46
- import { Account , useAccounts } from '../../hooks/useAccounts' ;
45
+ import { useAccounts } from '../../hooks/useAccounts' ;
47
46
48
47
// Internal dependencies.
49
48
import { PermissionsRequest } from '@metamask/permission-controller' ;
50
- import { ImageURISource , ImageSourcePropType , StyleSheet } from 'react-native' ;
49
+ import { ImageSourcePropType , StyleSheet } from 'react-native' ;
51
50
import URLParse from 'url-parse' ;
51
+ import { AvatarSize } from '../../../component-library/components/Avatars/Avatar' ;
52
+ import PermissionsSummary from '../../../components/UI/PermissionsSummary' ;
53
+ import { PermissionsSummaryProps } from '../../../components/UI/PermissionsSummary/PermissionsSummary.types' ;
52
54
import PhishingModal from '../../../components/UI/PhishingModal' ;
53
55
import { useMetrics } from '../../../components/hooks/useMetrics' ;
54
56
import Routes from '../../../constants/navigation/Routes' ;
@@ -58,33 +60,29 @@ import {
58
60
MM_PHISH_DETECT_URL ,
59
61
} from '../../../constants/urls' ;
60
62
import AppConstants from '../../../core/AppConstants' ;
63
+ import { getFormattedAddressFromInternalAccount } from '../../../core/Multichain/utils' ;
64
+ import { CaveatTypes } from '../../../core/Permissions/constants' ;
65
+ import { PermissionKeys } from '../../../core/Permissions/specifications' ;
61
66
import SDKConnect from '../../../core/SDKConnect/SDKConnect' ;
62
67
import DevLogger from '../../../core/SDKConnect/utils/DevLogger' ;
68
+ import { isUUID } from '../../../core/SDKConnect/utils/isUUID' ;
63
69
import { RootState } from '../../../reducers' ;
70
+ import { selectIsEvmNetworkSelected } from '../../../selectors/multichainNetworkController' ;
71
+ import { selectEvmNetworkConfigurationsByChainId } from '../../../selectors/networkController' ;
72
+ import { useNetworkInfo } from '../../../selectors/selectedNetworkController' ;
64
73
import { trackDappViewedEvent } from '../../../util/metrics' ;
74
+ import { getNetworkImageSource } from '../../../util/networks' ;
75
+ import { getPhishingTestResult } from '../../../util/phishingDetection' ;
65
76
import { useTheme } from '../../../util/theme' ;
66
77
import useFavicon from '../../hooks/useFavicon/useFavicon' ;
78
+ import useOriginSource from '../../hooks/useOriginSource' ;
79
+ import NetworkConnectMultiSelector from '../NetworkConnect/NetworkConnectMultiSelector' ;
67
80
import {
68
81
AccountConnectProps ,
69
82
AccountConnectScreens ,
70
83
} from './AccountConnect.types' ;
71
84
import AccountConnectMultiSelector from './AccountConnectMultiSelector' ;
72
- import AccountConnectSingle from './AccountConnectSingle' ;
73
85
import AccountConnectSingleSelector from './AccountConnectSingleSelector' ;
74
- import { PermissionsSummaryProps } from '../../../components/UI/PermissionsSummary/PermissionsSummary.types' ;
75
- import PermissionsSummary from '../../../components/UI/PermissionsSummary' ;
76
- import { getNetworkImageSource } from '../../../util/networks' ;
77
- import NetworkConnectMultiSelector from '../NetworkConnect/NetworkConnectMultiSelector' ;
78
- import { PermissionKeys } from '../../../core/Permissions/specifications' ;
79
- import { CaveatTypes } from '../../../core/Permissions/constants' ;
80
- import { useNetworkInfo } from '../../../selectors/selectedNetworkController' ;
81
- import { AvatarSize } from '../../../component-library/components/Avatars/Avatar' ;
82
- import { selectEvmNetworkConfigurationsByChainId } from '../../../selectors/networkController' ;
83
- import { isUUID } from '../../../core/SDKConnect/utils/isUUID' ;
84
- import useOriginSource from '../../hooks/useOriginSource' ;
85
- import { selectIsEvmNetworkSelected } from '../../../selectors/multichainNetworkController' ;
86
- import { getPhishingTestResult } from '../../../util/phishingDetection' ;
87
- import { getFormattedAddressFromInternalAccount } from '../../../core/Multichain/utils' ;
88
86
89
87
const createStyles = ( ) =>
90
88
StyleSheet . create ( {
@@ -173,11 +171,8 @@ const AccountConnect = (props: AccountConnectProps) => {
173
171
const isOriginWalletConnect =
174
172
! isOriginMMSDKRemoteConn && wc2Metadata ?. id && wc2Metadata ?. id . length > 0 ;
175
173
176
- const dappIconUrl = sdkConnection ?. originatorInfo ?. icon ;
177
174
const dappUrl = sdkConnection ?. originatorInfo ?. url ?? '' ;
178
175
179
- const [ isSdkUrlUnknown , setIsSdkUrlUnknown ] = useState ( false ) ;
180
-
181
176
const { domainTitle, hostname } = useMemo ( ( ) => {
182
177
let title = '' ;
183
178
let dappHostname = dappUrl || channelIdOrHostname ;
@@ -197,7 +192,6 @@ const AccountConnect = (props: AccountConnectProps) => {
197
192
dappHostname = inappBrowserOrigin ;
198
193
} else {
199
194
title = strings ( 'sdk.unknown' ) ;
200
- setIsSdkUrlUnknown ( true ) ;
201
195
}
202
196
203
197
return { domainTitle : title , hostname : dappHostname } ;
@@ -311,25 +305,6 @@ const AccountConnect = (props: AccountConnectProps) => {
311
305
inappBrowserOrigin || ( ! isChannelId ? channelIdOrHostname : '' ) ,
312
306
) ;
313
307
314
- const actualIcon = useMemo ( ( ) => {
315
- // Priority to dappIconUrl
316
- if ( dappIconUrl ) {
317
- return { uri : dappIconUrl } ;
318
- }
319
-
320
- if ( isOriginWalletConnect ) {
321
- // fetch icon from store
322
- return { uri : wc2Metadata ?. icon ?? '' } ;
323
- }
324
-
325
- const favicon = faviconSource as ImageURISource ;
326
- if ( 'uri' in favicon ) {
327
- return faviconSource ;
328
- }
329
-
330
- return { uri : '' } ;
331
- } , [ dappIconUrl , wc2Metadata , faviconSource , isOriginWalletConnect ] ) ;
332
-
333
308
const secureIcon = useMemo (
334
309
( ) =>
335
310
( getUrlObj ( hostname ) as URLParse < string > ) . protocol === 'https:'
@@ -548,8 +523,17 @@ const AccountConnect = (props: AccountConnectProps) => {
548
523
[ networkConfigurations , setScreen ] ,
549
524
) ;
550
525
551
- const hideSheet = ( callback ?: ( ) => void ) =>
552
- sheetRef ?. current ?. onCloseBottomSheet ?.( callback ) ;
526
+ const hideSheet = useCallback (
527
+ ( callback ?: ( ) => void ) =>
528
+ sheetRef ?. current ?. onCloseBottomSheet ?.( callback ) ,
529
+ [ sheetRef ] ,
530
+ ) ;
531
+
532
+ const handleConfirm = useCallback ( async ( ) => {
533
+ hideSheet ( ) ;
534
+ await handleUpdateNetworkPermissions ( ) ;
535
+ await handleConnect ( ) ;
536
+ } , [ handleUpdateNetworkPermissions , hideSheet , handleConnect ] ) ;
553
537
554
538
/**
555
539
* User intent is set on AccountConnectSingle,
@@ -566,9 +550,7 @@ const AccountConnect = (props: AccountConnectProps) => {
566
550
const handleUserActions = ( action : USER_INTENT ) => {
567
551
switch ( action ) {
568
552
case USER_INTENT . Confirm : {
569
- handleConnect ( ) ;
570
- handleUpdateNetworkPermissions ( ) ;
571
- hideSheet ( ) ;
553
+ handleConfirm ( ) ;
572
554
break ;
573
555
}
574
556
case USER_INTENT . Create : {
@@ -622,62 +604,20 @@ const AccountConnect = (props: AccountConnectProps) => {
622
604
sheetRef ,
623
605
cancelPermissionRequest ,
624
606
permissionRequestId ,
607
+ hideSheet ,
625
608
handleCreateAccount ,
626
609
handleConnect ,
610
+ handleConfirm ,
627
611
trackEvent ,
628
612
handleUpdateNetworkPermissions ,
629
613
createEventBuilder ,
630
614
] ) ;
631
615
632
- const handleSheetDismiss = ( ) => {
616
+ const handleSheetDismiss = useCallback ( ( ) => {
633
617
if ( ! permissionRequestId || userIntent !== USER_INTENT . None ) return ;
634
618
635
619
cancelPermissionRequest ( permissionRequestId ) ;
636
- } ;
637
-
638
- const renderSingleConnectScreen = useCallback ( ( ) => {
639
- const selectedAddress = selectedAddresses [ 0 ] ;
640
- const selectedAccount = accounts . find (
641
- ( account ) =>
642
- safeToChecksumAddress ( account . address ) ===
643
- safeToChecksumAddress ( selectedAddress ) ,
644
- ) ;
645
- const ensName = ensByAccountAddress [ selectedAddress ] ;
646
- const defaultSelectedAccount : Account | undefined = selectedAccount
647
- ? {
648
- ...selectedAccount ,
649
- name :
650
- isDefaultAccountName ( selectedAccount . name ) && ensName
651
- ? ensName
652
- : selectedAccount . name ,
653
- }
654
- : undefined ;
655
- return (
656
- < AccountConnectSingle
657
- onSetSelectedAddresses = { setSelectedAddresses }
658
- connection = { sdkConnection }
659
- onSetScreen = { setScreen }
660
- onUserAction = { setUserIntent }
661
- defaultSelectedAccount = { defaultSelectedAccount }
662
- isLoading = { isLoading }
663
- favicon = { actualIcon }
664
- secureIcon = { secureIcon }
665
- urlWithProtocol = { urlWithProtocol }
666
- />
667
- ) ;
668
- } , [
669
- accounts ,
670
- ensByAccountAddress ,
671
- selectedAddresses ,
672
- isLoading ,
673
- setScreen ,
674
- setSelectedAddresses ,
675
- actualIcon ,
676
- secureIcon ,
677
- sdkConnection ,
678
- urlWithProtocol ,
679
- setUserIntent ,
680
- ] ) ;
620
+ } , [ cancelPermissionRequest , permissionRequestId , userIntent ] ) ;
681
621
682
622
const renderPermissionsSummaryScreen = useCallback ( ( ) => {
683
623
const permissionsSummaryProps : PermissionsSummaryProps = {
@@ -832,9 +772,7 @@ const AccountConnect = (props: AccountConnectProps) => {
832
772
const renderConnectScreens = useCallback ( ( ) => {
833
773
switch ( screen ) {
834
774
case AccountConnectScreens . SingleConnect :
835
- return isSdkUrlUnknown
836
- ? renderSingleConnectScreen ( )
837
- : renderPermissionsSummaryScreen ( ) ;
775
+ return renderPermissionsSummaryScreen ( ) ;
838
776
case AccountConnectScreens . SingleConnectSelector :
839
777
return renderSingleConnectSelectorScreen ( ) ;
840
778
case AccountConnectScreens . MultiConnectSelector :
@@ -844,8 +782,6 @@ const AccountConnect = (props: AccountConnectProps) => {
844
782
}
845
783
} , [
846
784
screen ,
847
- isSdkUrlUnknown ,
848
- renderSingleConnectScreen ,
849
785
renderPermissionsSummaryScreen ,
850
786
renderSingleConnectSelectorScreen ,
851
787
renderMultiConnectSelectorScreen ,
0 commit comments