diff --git a/assets/js/src/integrations/blocks.js b/assets/js/src/integrations/blocks.js index ff71cf56..8cd5b715 100644 --- a/assets/js/src/integrations/blocks.js +++ b/assets/js/src/integrations/blocks.js @@ -6,37 +6,37 @@ import { ACTION_PREFIX, NAMESPACE } from '../constants'; addUniqueAction( `${ ACTION_PREFIX }-product-list-render`, NAMESPACE, - tracker.event( 'view_item_list' ).handler + tracker.eventHandler( 'view_item_list' ) ); addUniqueAction( `${ ACTION_PREFIX }-product-render`, NAMESPACE, - tracker.event( 'view_item' ).handler + tracker.eventHandler( 'view_item' ) ); addUniqueAction( `${ ACTION_PREFIX }-cart-add-item`, NAMESPACE, - tracker.event( 'add_to_cart' ).handler + tracker.eventHandler( 'add_to_cart' ) ); addUniqueAction( `${ ACTION_PREFIX }-cart-remove-item`, NAMESPACE, - tracker.event( 'remove_from_cart' ).handler + tracker.eventHandler( 'remove_from_cart' ) ); addUniqueAction( `${ ACTION_PREFIX }-checkout-render-checkout-form`, NAMESPACE, - tracker.event( 'begin_checkout' ).handler + tracker.eventHandler( 'begin_checkout' ) ); addUniqueAction( `${ ACTION_PREFIX }-product-view-link`, NAMESPACE, - tracker.event( 'select_content' ).handler + tracker.eventHandler( 'select_content' ) ); /** diff --git a/assets/js/src/integrations/classic.js b/assets/js/src/integrations/classic.js index 29dfa3bf..04931ff9 100644 --- a/assets/js/src/integrations/classic.js +++ b/assets/js/src/integrations/classic.js @@ -28,9 +28,9 @@ export const trackClassicIntegration = () => { Object.values( events ?? {} ).forEach( ( eventName ) => { if ( eventName === 'add_to_cart' ) { - tracker.event( eventName ).handler( { product: addedToCart } ); + tracker.eventHandler( eventName )( { product: addedToCart } ); } else { - tracker.event( eventName ).handler( eventData ); + tracker.eventHandler( eventName )( eventData ); } } ); @@ -43,7 +43,7 @@ export const trackClassicIntegration = () => { * @param {HTMLElement[]} button - An array of HTML elements representing the add to cart button. */ document.body.onadded_to_cart = ( e, fragments, cartHash, button ) => { - tracker.event( 'add_to_cart' ).handler( { + tracker.eventHandler( 'add_to_cart' )( { product: getProductFromID( parseInt( button[ 0 ].dataset.product_id ) ), @@ -65,7 +65,7 @@ export const trackClassicIntegration = () => { return; } - tracker.event( 'remove_from_cart' ).handler( { + tracker.eventHandler( 'remove_from_cart' )( { product: getProductFromID( parseInt( item.dataset.product_id ), true @@ -98,7 +98,7 @@ export const trackClassicIntegration = () => { return; } - tracker.event( 'select_content' ).handler( { + tracker.eventHandler( 'select_content' )( { product: getProductFromID( parseInt( productId ) ), } ); } ); diff --git a/assets/js/src/tracker/index.js b/assets/js/src/tracker/index.js index cc7d31f9..031ac83b 100644 --- a/assets/js/src/tracker/index.js +++ b/assets/js/src/tracker/index.js @@ -52,28 +52,26 @@ class Tracker { } /** - * Creates and returns an event handler object for a specified event name. + * Creates and returns an event handler for a specified event name. * * @param {string} name The name of the event. - * @return {{handler: function(*): void}} An object with a `handler` method for processing and tracking the event. + * @return {function(*): void} Function for processing and tracking the event. * @throws {Error} If the event name is not supported. */ - event( name ) { + eventHandler( name ) { /* eslint import/namespace: [ 'error', { allowComputed: true } ] */ if ( ! formatters[ name ] ) { throw new Error( `Event ${ name } is not supported.` ); } - return { - handler: ( data ) => { - if ( config.events.includes( name ) ) { - window[ config.tracker_var ]( - 'event', - name, - formatters[ name ]( data ) - ); - } - }, + return function trackerEventHandler( data ) { + if ( config.events.includes( name ) ) { + window[ config.tracker_var ]( + 'event', + name, + formatters[ name ]( data ) + ); + } }; } }