UNPKG

salsify-experiences-sdk

Version:

SDK to be used by commerce websites to implement product experiences.

49 lines (48 loc) 1.46 kB
/** * @module events */ import { Logger } from '../utils/logger'; import { NavigationEventOptions } from './navigation'; import { AddToCartEventOptions } from './add-to-cart'; import EnhancedContentApi from '../enhancedContent'; /** @internal */ export interface EventsApiOptions { beforeNavigation?: (options?: NavigationEventOptions) => void; onNavigation?: (options?: NavigationEventOptions) => void; } /** * This class is responsible for handling events. * * It is responsible for exposing the public methods for triggering each different type of event. */ export default class EventsApi { #private; /** @internal */ constructor(logger: Logger, options?: EventsApiOptions, ecApi?: EnhancedContentApi); /** * Triggers the `navigation` event. * * @example * ```typescript * salsify.events.navigation({ * productIdType: "SKU", * productId: "123", * }); * ``` * * @param options The options to pass to the event handler. */ navigation(options: NavigationEventOptions): void; /** * Triggers the `addToCart` event. * * @example * ```javascript * const salsify = window.salsifyExperiencesSdk; * const options = { quantity: 1, productIdType, productId }; * salsify.events.addToCart(options); * ``` * @param options The options to pass to the event handler. */ addToCart(options: AddToCartEventOptions): void; }