UNPKG

@cliqdigital/bloomreach-sdk

Version:

React component library for integrating Bloomreach SDK with push notifications support

56 lines (55 loc) 2.42 kB
"use strict"; "use client"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.useTracking = void 0; var react_1 = require("react"); var BloomreachContext_1 = require("../context/BloomreachContext"); function useTracking() { var _a = (0, BloomreachContext_1.useBloomreachContext)(), isInitialized = _a.isInitialized, hasConsent = _a.hasConsent; var trackEvent = (0, react_1.useCallback)(function (eventName, properties) { if (!isInitialized || !window.exponea) { console.warn('Cannot track event, SDK not initialized:', eventName); return; } console.log('Tracking event:', eventName, properties); window.exponea.track(eventName, __assign(__assign({}, properties), { timestamp: new Date().toISOString() })); }, [isInitialized]); var trackPageView = (0, react_1.useCallback)(function (path, title, properties) { if (!isInitialized || !window.exponea) { console.warn('Cannot track page view, SDK not initialized:', path); return; } var url = path || window.location.pathname; var pageTitle = title || document.title; console.log('Tracking page view:', url, pageTitle); window.exponea.track('page_visit', __assign(__assign({ url: window.location.origin + url, path: url, title: pageTitle }, properties), { timestamp: new Date().toISOString() })); }, [isInitialized]); var identifyUser = (0, react_1.useCallback)(function (userId, properties) { if (!isInitialized || !window.exponea) { console.warn('Cannot identify user, SDK not initialized:', userId); return; } console.log('Identifying user:', userId); window.exponea.identify(userId); if (properties) { window.exponea.update(properties); } }, [isInitialized]); return { trackEvent: trackEvent, trackPageView: trackPageView, identifyUser: identifyUser, }; } exports.useTracking = useTracking;