File "product-analytics.js"

Full Path: /home/tekvhqgl/public_html/wp-content/plugins/wp-smushit/_src/js/smush/product-analytics.js
File size: 1.29 KB
MIME-type: text/plain
Charset: utf-8

import MixPanel from "../mixpanel";

class ProductAnalytics {
    init() {
        this.trackUltraLinks();
    }

    trackUltraLinks() {
		const ultraUpsellLinks = document.querySelectorAll( '.wp-smush-upsell-ultra-compression' );
		if ( ! ultraUpsellLinks ) {
			return;
		}
		const getLocation = ( ultraLink ) => {
			const locations = {
				'settings': 'bulksmush_settings',
				'dashboard': 'dash_summary',
				'bulk': 'bulksmush_summary',
				'directory': 'directory_summary',
				'lazy-load': 'lazy_summary',
				'cdn': 'cdn_summary',
				'webp': 'webp_summary',
			};
			const locationId = ultraLink.classList.contains( 'wp-smush-ultra-compression-link' ) ? 'settings' : this.getCurrentPageSlug();
			return locations[locationId] || 'bulksmush_settings';
		}

		ultraUpsellLinks.forEach( ( ultraLink ) => {
			const eventName = 'ultra_upsell_modal';
			ultraLink.addEventListener( 'click', (e) => {
				MixPanel.getInstance().track( eventName, {
					'Location': getLocation( e.target ),
					'Modal Action': 'direct_cta',
				});
			});
		});
	}

    getCurrentPageSlug(){
		const searchParams = new URLSearchParams(document.location.search);
		const pageSlug = searchParams.get("page");
        return 'smush' === pageSlug ? 'dashboard' : pageSlug.replace( 'smush-', '' );
	}
}

( new ProductAnalytics() ).init();