Skip to content

Commit 53dedbf

Browse files
jeetparikhJeetkeithbro-imx
authored
chore: Track events on different swap form interactions (#2528)
Co-authored-by: Jeet <[email protected]> Co-authored-by: Keith Broughton <[email protected]>
1 parent dbb1908 commit 53dedbf

File tree

1 file changed

+66
-4
lines changed
  • packages/checkout/widgets-lib/src/widgets/swap/components

1 file changed

+66
-4
lines changed

packages/checkout/widgets-lib/src/widgets/swap/components/SwapForm.tsx

Lines changed: 66 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,24 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
215215
network,
216216
]);
217217

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+
218236
const tokensOptionsTo = useMemo(() => allowedTokens
219237
.map(
220238
(token) => ({
@@ -329,8 +347,7 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
329347
console.error('Error fetching quote.', error);
330348

331349
resetQuote();
332-
setShowNotEnoughImxDrawer(false);
333-
setShowUnableToSwapDrawer(true);
350+
openUnableToSwapDrawer(error);
334351
}
335352
}
336353

@@ -406,8 +423,7 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
406423
} catch (error: any) {
407424
if (!error.cancelled) {
408425
resetQuote();
409-
setShowNotEnoughImxDrawer(false);
410-
setShowUnableToSwapDrawer(true);
426+
openUnableToSwapDrawer(error);
411427
}
412428
}
413429

@@ -542,6 +558,18 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
542558
setFromToken(selected.token);
543559
setFromBalance(selected.formattedBalance);
544560
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+
});
545573
}, [toToken]);
546574

547575
const onFromTextInputFocus = () => {
@@ -559,6 +587,18 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
559587
setLoading(true);
560588
}
561589
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+
});
562602
};
563603

564604
const textInputMaxButtonClick = () => {
@@ -602,6 +642,17 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
602642

603643
setToToken(selected);
604644
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+
});
605656
}, [fromToken]);
606657

607658
const onToTextInputFocus = () => {
@@ -620,6 +671,17 @@ export function SwapForm({ data, theme, cancelAutoProceed }: SwapFromProps) {
620671
setLoading(true);
621672
}
622673
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+
});
623685
};
624686

625687
const openNotEnoughImxDrawer = () => {

0 commit comments

Comments
 (0)