Skip to content

Commit

Permalink
Simplify tracker event handler API,
Browse files Browse the repository at this point in the history
Remove not used "event" object.

Addresses #328 (comment)
  • Loading branch information
tomalec committed Feb 8, 2024
1 parent 155b32f commit 5395991
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 24 deletions.
12 changes: 6 additions & 6 deletions assets/js/src/integrations/blocks.js
Original file line number Diff line number Diff line change
Expand Up @@ -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' )
);

/**
Expand Down
10 changes: 5 additions & 5 deletions assets/js/src/integrations/classic.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 );
}
} );

Expand All @@ -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 )
),
Expand All @@ -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
Expand Down Expand Up @@ -98,7 +98,7 @@ export const trackClassicIntegration = () => {
return;
}

tracker.event( 'select_content' ).handler( {
tracker.eventHandler( 'select_content' )( {
product: getProductFromID( parseInt( productId ) ),
} );
} );
Expand Down
24 changes: 11 additions & 13 deletions assets/js/src/tracker/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 )
);
}
};
}
}
Expand Down

0 comments on commit 5395991

Please sign in to comment.