salsify-experiences-sdk
Version:
SDK to be used by commerce websites to implement product experiences.
49 lines (48 loc) • 1.46 kB
TypeScript
/**
* @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;
}