UNPKG

react-mixpanel-browser

Version:

React hook for [mixpanel-browser](https://www.npmjs.com/package/mixpanel-browser).

8 lines (7 loc) 2.63 kB
{ "version": 3, "sources": ["../src/index.ts", "../src/mixpanelContext.ts", "../src/MixpanelProvider.tsx", "../src/useMixpanel.ts"], "sourcesContent": ["export * from './mixpanelContext.js';\nexport * from './MixpanelProvider.js';\nexport * from './useMixpanel.js';\n", "import { type Mixpanel } from 'mixpanel-browser';\nimport { createContext } from 'react';\n\nexport type MixpanelContext = Mixpanel | undefined;\n\nexport const mixpanelContext = createContext<MixpanelContext>(undefined);\n", "import { type Config, init } from 'mixpanel-browser';\nimport { type ProviderProps, useMemo } from 'react';\nimport { type MixpanelContext, mixpanelContext } from './mixpanelContext.js';\n\nexport interface MixpanelProviderProps extends Omit<ProviderProps<MixpanelContext>, 'value'> {\n config?: Partial<Config>;\n name?: string;\n token?: string;\n}\n\nexport function MixpanelProvider({\n children,\n config: _config,\n name: _name,\n token,\n}: MixpanelProviderProps) {\n const name = useMemo(() => _name ?? 'react-mixpanel-browser', [_name]);\n\n const config = useMemo(\n () => ({\n track_pageview: false, // Rarely makes sense to track page views in React apps\n ..._config,\n }),\n [_config],\n );\n\n const context = useMemo(\n () => (token ? init(token, config, name) : undefined),\n [config, name, token],\n );\n\n return <mixpanelContext.Provider value={context}>{children}</mixpanelContext.Provider>;\n}\n", "import { useContext } from 'react';\nimport { type MixpanelContext, mixpanelContext } from './mixpanelContext.js';\n\nexport const useMixpanel = (): MixpanelContext => useContext(mixpanelContext);\n"], "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,oBAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAL,GCCA,IAAAM,EAA8B,iBAIjBC,KAAkB,iBAA+B,MAAS,ECLvE,IAAAC,EAAkC,4BAClCC,EAA4C,iBA8BnC,IAAAC,EAAA,6BArBF,SAASC,EAAiB,CAC/B,SAAAC,EACA,OAAQC,EACR,KAAMC,EACN,MAAAC,CACF,EAA0B,CACxB,IAAMC,KAAO,WAAQ,IAAMF,GAAS,yBAA0B,CAACA,CAAK,CAAC,EAE/DG,KAAS,WACb,KAAO,CACL,eAAgB,GAChB,GAAGJ,CACL,GACA,CAACA,CAAO,CACV,EAEMK,KAAU,WACd,IAAOH,KAAQ,QAAKA,EAAOE,EAAQD,CAAI,EAAI,OAC3C,CAACC,EAAQD,EAAMD,CAAK,CACtB,EAEA,SAAO,OAACI,EAAgB,SAAhB,CAAyB,MAAOD,EAAU,SAAAN,EAAS,CAC7D,CChCA,IAAAQ,EAA2B,iBAGpB,IAAMC,EAAc,OAAuB,cAAWC,CAAe", "names": ["src_exports", "__export", "MixpanelProvider", "mixpanelContext", "useMixpanel", "__toCommonJS", "import_react", "mixpanelContext", "import_mixpanel_browser", "import_react", "import_jsx_runtime", "MixpanelProvider", "children", "_config", "_name", "token", "name", "config", "context", "mixpanelContext", "import_react", "useMixpanel", "mixpanelContext"] }