Using Event Hooks
Stencil themes provide access to remote resources through data tags and event hooks. Developers can use these hooks to trigger defined events. A theme can hook to an event to perform actions or calculations based on shopper behavior.
Stencil themes incorporate event hooks by importing the stencil-utils module. Looking at cornerstone/assets/js/theme/, you will see the import statement 'import utils from '@bigcommerce/stencil-utils'; at the top of files using leveraging event hooks.
Cookie Notification Example
In the example below, the cookie-privacy-notification hook enables customization of the alert window that displays European Union–required cookie notifications:
First, ensure you have loaded the stencil-utils package with the following command:
import utils from '@bigcommerce/stencil-utils';
European websites must notify users of cookies to comply with European Union law. The following code implements a hook that will alert shoppers that the website uses cookies.
A theme would listen for the cookie-privacy-notification event to override the browser’s default notification UI.
Cart Dialog Example
In the following code snippet from Cornerstone in templates/components/products/product-view.html, note the data tag named data‑cart‑item‑add:
This data tag enables the emission of the cart‑item‑add event in this next snippet:
Stencil Data Tags and Event Hooks
Stencil themes provide the following chains of data tags, delegated DOM (Document Object Model) events, emitted Stencil event hooks, and Stencil event parameter(s).
Cart Item Added
Hook for items added to the customer’s shopping cart.
Faceted-Search Events
Hooks for faceted-search selections that the customer initiates or submits.