@@ -13,9 +13,11 @@ import { isWalletConnect } from "../../utils/utils";
1313interface ConnectWalletModalProps {
1414 providers : WalletProvider [ ] ;
1515 successPageDuration ?: number | undefined ;
16+ onSuccess : ( ) => void ;
17+ onError : ( error : any ) => void ;
1618}
1719export function ConnectWalletModal ( props : ConnectWalletModalProps ) {
18- const { providers, successPageDuration } = props ;
20+ const { providers, successPageDuration, onSuccess , onError } = props ;
1921 const { pushPage, closeModal } = useModal ( ) ;
2022 const { connectWalletAccount, disconnectWalletAccount } = useTurnkey ( ) ;
2123
@@ -49,22 +51,27 @@ export function ConnectWalletModal(props: ConnectWalletModalProps) {
4951 }
5052 closeOnComplete = { false }
5153 action = { async ( ) => {
52- await connectWalletAccount ( provider ) ;
53- if ( successPageDuration && successPageDuration > 0 ) {
54- pushPage ( {
55- key : "Connecting Success" ,
56- content : (
57- < SuccessPage
58- text = "Successfully connected wallet!"
59- onComplete = { ( ) => closeModal ( ) }
60- duration = { successPageDuration }
61- />
62- ) ,
63- preventBack : true ,
64- showTitle : false ,
65- } ) ;
66- } else {
67- closeModal ( ) ;
54+ try {
55+ await connectWalletAccount ( provider ) ;
56+ onSuccess ( ) ;
57+ if ( successPageDuration && successPageDuration > 0 ) {
58+ pushPage ( {
59+ key : "Connecting Success" ,
60+ content : (
61+ < SuccessPage
62+ text = "Successfully connected wallet!"
63+ onComplete = { ( ) => closeModal ( ) }
64+ duration = { successPageDuration }
65+ />
66+ ) ,
67+ preventBack : true ,
68+ showTitle : false ,
69+ } ) ;
70+ } else {
71+ closeModal ( ) ;
72+ }
73+ } catch ( error ) {
74+ onError ( error ) ;
6875 }
6976 } }
7077 />
@@ -80,22 +87,27 @@ export function ConnectWalletModal(props: ConnectWalletModalProps) {
8087 < DisconnectWalletScreen
8188 provider = { provider }
8289 onDisconnect = { async ( ) => {
83- await disconnectWalletAccount ( provider ) ;
84- if ( successPageDuration ) {
85- pushPage ( {
86- key : "Disconnect Success" ,
87- content : (
88- < SuccessPage
89- text = "Successfully disconnected wallet!"
90- onComplete = { ( ) => closeModal ( ) }
91- duration = { successPageDuration }
92- />
93- ) ,
94- preventBack : true ,
95- showTitle : false ,
96- } ) ;
97- } else {
98- closeModal ( ) ;
90+ try {
91+ await disconnectWalletAccount ( provider ) ;
92+ onSuccess ( ) ;
93+ if ( successPageDuration ) {
94+ pushPage ( {
95+ key : "Disconnect Success" ,
96+ content : (
97+ < SuccessPage
98+ text = "Successfully disconnected wallet!"
99+ onComplete = { ( ) => closeModal ( ) }
100+ duration = { successPageDuration }
101+ />
102+ ) ,
103+ preventBack : true ,
104+ showTitle : false ,
105+ } ) ;
106+ } else {
107+ closeModal ( ) ;
108+ }
109+ } catch ( error ) {
110+ onError ( error ) ;
99111 }
100112 } }
101113 />
0 commit comments