{"version":3,"file":"index.cjs","sources":["../../src/react/useTelemetryStoreLifeCycleEvents.ts","../../src/react/TelemetryProvider.tsx","../../src/react/useTelemetry.ts"],"sourcesContent":["import type {TelemetryStore} from '../types'\nimport {useEffect} from 'react'\nimport {onPageHide, onVisibilityHidden} from '../utils/browserEvents'\n\nexport function useTelemetryStoreLifeCycleEvents(\n  store: TelemetryStore<unknown>,\n) {\n  // when visibility changes to hidden, flush events, but continue tracking\n  useEffect(() => onVisibilityHidden(store.flush), [store.flush])\n  // when browser navigates away, closes or reloads the page, use provided sendBeacon method to send events\n  useEffect(() => onPageHide(store.endWithBeacon), [store.endWithBeacon])\n}\n","import type React from 'react'\nimport {createContext} from 'react'\nimport {TelemetryLogger, TelemetryStore} from '../types'\nimport {useTelemetryStoreLifeCycleEvents} from './useTelemetryStoreLifeCycleEvents'\nimport {noopLogger} from '../noopLogger'\n\n/**\n * @internal\n */\nexport const TelemetryLoggerContext =\n  createContext<TelemetryLogger<unknown>>(noopLogger)\n\nexport function TelemetryProvider<UserProperties>({\n  children,\n  store,\n}: {\n  children: React.ReactNode\n  store: TelemetryStore<UserProperties>\n}) {\n  // Hook the telemetry store up to page life cycle events like hide/unload\n  useTelemetryStoreLifeCycleEvents(store)\n\n  return (\n    <TelemetryLoggerContext.Provider value={store.logger}>\n      {children}\n    </TelemetryLoggerContext.Provider>\n  )\n}\n","import {useContext} from 'react'\nimport {TelemetryLoggerContext} from './TelemetryProvider'\nimport type {TelemetryLogger} from '../'\n\nexport function useTelemetry<\n  UserProperties,\n>(): TelemetryLogger<UserProperties> {\n  return useContext(TelemetryLoggerContext) as TelemetryLogger<UserProperties>\n}\n"],"names":["useTelemetryStoreLifeCycleEvents","store","useEffect","onVisibilityHidden","flush","onPageHide","endWithBeacon","TelemetryLoggerContext","createContext","noopLogger","TelemetryProvider","_ref","children","Provider","value","logger","useTelemetry","useContext"],"mappings":";;;;;;;;AAIO,SAASA,iCACdC,KACA,EAAA;EAEUC,eAAA,CAAA,MAAMC,8BAAmBF,KAAM,CAAAG,KAAK,GAAG,CAACH,KAAA,CAAMG,KAAK,CAAC,CAAA;EAEpDF,eAAA,CAAA,MAAMG,sBAAWJ,KAAM,CAAAK,aAAa,GAAG,CAACL,KAAA,CAAMK,aAAa,CAAC,CAAA;AACxE;ACFa,MAAAC,sBAAA,GACXC,KAAAA,CAAAA,cAAwCC,UAAAA,CAAAA,UAAU,CAAA;AAE7C,SAASC,iBAAkCA,CAAAC,IAAA,EAM/C;EAAA,IAN+C;IAChDC,QAAA;IACAX;EACF,CAGG,GAAAU,IAAA;EAEDX,gCAAA,CAAiCC,KAAK,CAAA;EAEtC,qCACGM,sBAAuB,CAAAM,QAAA,EAAvB;IAAgCC,KAAO,EAAAb,KAAA,CAAMc;IAC3CH;EACH,CAAA,CAAA;AAEJ;ACvBO,SAASI,YAEqBA,CAAA,EAAA;EACnC,OAAOC,KAAAA,CAAAA,WAAWV,sBAAsB,CAAA;AAC1C;;;"}