![]()
,
+ type: Object as PropType
,
},
linkComponent: {
type: Object as PropType,
@@ -385,50 +389,67 @@ const route = useRoute();
const ampUrl = computed(() => {
return props.currUrl ? props.currUrl : route.fullPath || "";
});
-const trackLogo = () => {
- $amplitude.track(amplitudeConfigs.headerLogo, { route: ampUrl.value });
+
+const trackClickEvent = (
+ linkName: AnalyticsHeaderLinkName,
+ destinationURL: string,
+ extraData?: Record,
+): void => {
+ trackHeaderLinkClickedEvent($amplitude, linkName, {
+ sourceURL: route.fullPath, // TODO: don't include search & hash?
+ destinationURL, // TODO: don't include search & hash?
+ language: locale.value,
+ ...extraData,
+ });
+};
+
+const trackLogo = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.LOGO, destinationURL);
};
-const trackSwap = () => {
- $amplitude.track(amplitudeConfigs.headerSwap, { route: ampUrl.value });
+const trackSwap = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.SWAP_TOKENS, destinationURL);
};
-const trackBuy = () => {
- $amplitude.track(amplitudeConfigs.headerBuy, { route: ampUrl.value });
+const trackBuy = (evt: MouseEvent) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.BUY_CRYPTO, destinationURL);
};
-const trackNft = () => {
- $amplitude.track(amplitudeConfigs.headerNft, { route: ampUrl.value });
+const trackNft = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.NFT, destinationURL);
};
-const trackDapps = () => {
- $amplitude.track(amplitudeConfigs.headerDapps, { route: ampUrl.value });
+const trackDapps = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.DAPPS, destinationURL);
};
-const trackMewtopia = () => {
- $amplitude.track(amplitudeConfigs.headerMewtopia, { route: ampUrl.value });
+const trackMewtopia = (evt: MouseEvent) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.MEWTOPIA, destinationURL);
};
-const trackHelpCenter = () => {
- $amplitude.track(amplitudeConfigs.headerHelpCenter, {
- route: ampUrl.value,
- });
+const trackHelpCenter = (evt: MouseEvent) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.HELP_CENTER, destinationURL);
};
-const trackCustomerSupport = () => {
- $amplitude.track(amplitudeConfigs.headerCustomerSupport, {
- route: ampUrl.value,
- });
+const trackCustomerSupport = (evt: MouseEvent) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.CUSTOMER_SUPPORT, destinationURL);
+};
+const trackAccessWallet = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.ACCESS_WALLET, destinationURL);
};
-const trackAccessWallet = () => {
- $amplitude.track(amplitudeConfigs.headerAccessWallet, {
- route: ampUrl.value,
+const trackProduct = (destinationURL: string, targetProduct: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.PRODUCT, destinationURL, {
+ targetProduct,
});
};
-const trackProduct = (obj: itemType) => {
- $amplitude.track(amplitudeConfigs.headerProduct, {
- ...obj,
- route: ampUrl.value,
+const trackProductAnchor = (evt: MouseEvent, destinationProduct: string) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.PRODUCT, destinationURL, {
+ destinationProduct,
});
};
-const trackFAQ = () => {
- $amplitude.track(amplitudeConfigs.headerFAQ, { route: ampUrl.value });
+const trackFAQ = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.FAQ, destinationURL);
};
-const trackStaking = () => {
- $amplitude.track(amplitudeConfigs.headerStaking, { route: ampUrl.value });
+const trackStaking = (destinationURL: string) => {
+ trackClickEvent(AnalyticsHeaderLinkName.STAKING, destinationURL);
};
/**
@@ -436,9 +457,10 @@ const trackStaking = () => {
*/
const isOpenMobileMenu = ref(false);
-const openMobileMenu = () => {
+const openMobileMenu = (evt: MouseEvent) => {
+ const destinationURL = (evt.target as HTMLAnchorElement)?.href;
+ trackClickEvent(AnalyticsHeaderLinkName.CLOSE_MOBILE_MENU, destinationURL);
isOpenMobileMenu.value = true;
- $amplitude.track(amplitudeConfigs.openMobileMenu, { route: ampUrl.value });
};