HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/.codex/.tmp/plugins/plugins/wix/skills/wix-headless/shared-utilities/analytics.ts
export type AnalyticsEventName =
  | "AddToCart"
  | "RemoveFromCart"
  | "InitiateCheckout"
  | "Purchase"
  | "ArticleView"
  | "FormSubmit"
  | "AddProductImpression"
  | "ViewContent"
  | "ClickProduct"
  | (string & {});

export function trackEvent(
  name: AnalyticsEventName,
  payload?: Record<string, unknown>,
): void {
  if (typeof window === "undefined") return;

  const event = { name, ...(payload ?? {}) };

  const w = window as unknown as {
    dataLayer?: unknown[];
    wixAnalytics?: { track(event: { name: string } & Record<string, unknown>): void };
  };

  if (w.wixAnalytics?.track) {
    w.wixAnalytics.track(event);
    return;
  }

  if (w.dataLayer) {
    w.dataLayer.push({ event: name, ...event });
    return;
  }

  const meta = import.meta as unknown as { env?: { DEV?: boolean } };
  if (meta.env?.DEV) {
    console.debug("[analytics]", event);
  }
}