@@ -215,6 +215,24 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
215
215
network ,
216
216
] ) ;
217
217
218
+ const openUnableToSwapDrawer = useCallback ( ( error : any ) => {
219
+ setShowNotEnoughImxDrawer ( false ) ;
220
+ setShowUnableToSwapDrawer ( true ) ;
221
+ track ( {
222
+ userJourney : UserJourney . SWAP ,
223
+ screen : 'SwapCoins' ,
224
+ control : 'UnableToSwapDrawer' ,
225
+ controlType : 'Button' ,
226
+ extras : {
227
+ fromToken,
228
+ toToken,
229
+ fromAmount,
230
+ toAmount,
231
+ error : 'message' in error ? error . message : error ,
232
+ } ,
233
+ } ) ;
234
+ } , [ track , fromToken , toToken , fromAmount , toAmount ] ) ;
235
+
218
236
const tokensOptionsTo = useMemo ( ( ) => allowedTokens
219
237
. map (
220
238
( token ) => ( {
@@ -329,8 +347,7 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
329
347
console . error ( 'Error fetching quote.' , error ) ;
330
348
331
349
resetQuote ( ) ;
332
- setShowNotEnoughImxDrawer ( false ) ;
333
- setShowUnableToSwapDrawer ( true ) ;
350
+ openUnableToSwapDrawer ( error ) ;
334
351
}
335
352
}
336
353
@@ -406,8 +423,7 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
406
423
} catch ( error : any ) {
407
424
if ( ! error . cancelled ) {
408
425
resetQuote ( ) ;
409
- setShowNotEnoughImxDrawer ( false ) ;
410
- setShowUnableToSwapDrawer ( true ) ;
426
+ openUnableToSwapDrawer ( error ) ;
411
427
}
412
428
}
413
429
@@ -542,6 +558,18 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
542
558
setFromToken ( selected . token ) ;
543
559
setFromBalance ( selected . formattedBalance ) ;
544
560
setFromTokenError ( '' ) ;
561
+
562
+ track ( {
563
+ userJourney : UserJourney . SWAP ,
564
+ screen : 'SwapCoins' ,
565
+ control : 'SelectFrom' ,
566
+ controlType : 'Select' ,
567
+ extras : {
568
+ fromBalance : selected . formattedBalance ,
569
+ fromToken : selected . token ,
570
+ fromAmount,
571
+ } ,
572
+ } ) ;
545
573
} , [ toToken ] ) ;
546
574
547
575
const onFromTextInputFocus = ( ) => {
@@ -559,6 +587,18 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
559
587
setLoading ( true ) ;
560
588
}
561
589
setFromAmount ( value ) ;
590
+
591
+ track ( {
592
+ userJourney : UserJourney . SWAP ,
593
+ screen : 'SwapCoins' ,
594
+ control : 'InputFrom' ,
595
+ controlType : 'TextInput' ,
596
+ extras : {
597
+ fromBalance,
598
+ fromToken,
599
+ fromAmount : value ,
600
+ } ,
601
+ } ) ;
562
602
} ;
563
603
564
604
const textInputMaxButtonClick = ( ) => {
@@ -602,6 +642,17 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
602
642
603
643
setToToken ( selected ) ;
604
644
setToTokenError ( '' ) ;
645
+
646
+ track ( {
647
+ userJourney : UserJourney . SWAP ,
648
+ screen : 'SwapCoins' ,
649
+ control : 'SelectTo' ,
650
+ controlType : 'Select' ,
651
+ extras : {
652
+ toToken : selected ,
653
+ toAmount,
654
+ } ,
655
+ } ) ;
605
656
} , [ fromToken ] ) ;
606
657
607
658
const onToTextInputFocus = ( ) => {
@@ -620,6 +671,17 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
620
671
setLoading ( true ) ;
621
672
}
622
673
setToAmount ( value ) ;
674
+
675
+ track ( {
676
+ userJourney : UserJourney . SWAP ,
677
+ screen : 'SwapCoins' ,
678
+ control : 'InputTo' ,
679
+ controlType : 'TextInput' ,
680
+ extras : {
681
+ toToken,
682
+ toAmount : value ,
683
+ } ,
684
+ } ) ;
623
685
} ;
624
686
625
687
const openNotEnoughImxDrawer = ( ) => {
0 commit comments