react-fathom 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +199 -0
- package/dist/cjs/index.cjs +410 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/next/index.cjs +910 -0
- package/dist/cjs/next/index.cjs.map +1 -0
- package/dist/es/index.js +381 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/next/index.js +885 -0
- package/dist/es/next/index.js.map +1 -0
- package/dist/react-fathom.js +413 -0
- package/dist/react-fathom.js.map +1 -0
- package/dist/react-fathom.min.js +3 -0
- package/dist/react-fathom.min.js.map +1 -0
- package/package.json +127 -0
- package/src/FathomContext.tsx +5 -0
- package/src/FathomProvider.test.tsx +532 -0
- package/src/FathomProvider.tsx +122 -0
- package/src/components/TrackClick.test.tsx +191 -0
- package/src/components/TrackClick.tsx +62 -0
- package/src/components/TrackPageview.test.tsx +111 -0
- package/src/components/TrackPageview.tsx +36 -0
- package/src/components/TrackVisible.test.tsx +311 -0
- package/src/components/TrackVisible.tsx +105 -0
- package/src/components/index.ts +3 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/useFathom.test.tsx +51 -0
- package/src/hooks/useFathom.ts +11 -0
- package/src/hooks/useTrackOnClick.test.tsx +197 -0
- package/src/hooks/useTrackOnClick.ts +65 -0
- package/src/hooks/useTrackOnMount.test.tsx +79 -0
- package/src/hooks/useTrackOnMount.ts +24 -0
- package/src/hooks/useTrackOnVisible.test.tsx +313 -0
- package/src/hooks/useTrackOnVisible.ts +99 -0
- package/src/index.ts +4 -0
- package/src/next/NextFathomProvider.test.tsx +131 -0
- package/src/next/NextFathomProvider.tsx +62 -0
- package/src/next/NextFathomProviderApp.test.tsx +308 -0
- package/src/next/NextFathomProviderApp.tsx +106 -0
- package/src/next/NextFathomProviderPages.test.tsx +330 -0
- package/src/next/NextFathomProviderPages.tsx +112 -0
- package/src/next/compositions/withAppRouter.test.tsx +113 -0
- package/src/next/compositions/withAppRouter.tsx +48 -0
- package/src/next/compositions/withPagesRouter.test.tsx +113 -0
- package/src/next/compositions/withPagesRouter.tsx +44 -0
- package/src/next/index.ts +7 -0
- package/src/next/types.ts +19 -0
- package/src/types.ts +37 -0
- package/types/FathomContext.d.ts +3 -0
- package/types/FathomContext.d.ts.map +1 -0
- package/types/FathomProvider.d.ts +5 -0
- package/types/FathomProvider.d.ts.map +1 -0
- package/types/components/TrackClick.d.ts +39 -0
- package/types/components/TrackClick.d.ts.map +1 -0
- package/types/components/TrackPageview.d.ts +21 -0
- package/types/components/TrackPageview.d.ts.map +1 -0
- package/types/components/TrackVisible.d.ts +39 -0
- package/types/components/TrackVisible.d.ts.map +1 -0
- package/types/components/index.d.ts +4 -0
- package/types/components/index.d.ts.map +1 -0
- package/types/hooks/index.d.ts +5 -0
- package/types/hooks/index.d.ts.map +1 -0
- package/types/hooks/useFathom.d.ts +6 -0
- package/types/hooks/useFathom.d.ts.map +1 -0
- package/types/hooks/useTrackOnClick.d.ts +39 -0
- package/types/hooks/useTrackOnClick.d.ts.map +1 -0
- package/types/hooks/useTrackOnMount.d.ts +14 -0
- package/types/hooks/useTrackOnMount.d.ts.map +1 -0
- package/types/hooks/useTrackOnVisible.d.ts +43 -0
- package/types/hooks/useTrackOnVisible.d.ts.map +1 -0
- package/types/index.d.ts +5 -0
- package/types/index.d.ts.map +1 -0
- package/types/next/AppRouterProvider.d.ts +7 -0
- package/types/next/AppRouterProvider.d.ts.map +1 -0
- package/types/next/NextFathomProvider.d.ts +34 -0
- package/types/next/NextFathomProvider.d.ts.map +1 -0
- package/types/next/NextFathomProviderApp.d.ts +6 -0
- package/types/next/NextFathomProviderApp.d.ts.map +1 -0
- package/types/next/NextFathomProviderPages.d.ts +6 -0
- package/types/next/NextFathomProviderPages.d.ts.map +1 -0
- package/types/next/PagesRouterProvider.d.ts +7 -0
- package/types/next/PagesRouterProvider.d.ts.map +1 -0
- package/types/next/compositions/withAppRouter.d.ts +29 -0
- package/types/next/compositions/withAppRouter.d.ts.map +1 -0
- package/types/next/compositions/withPagesRouter.d.ts +25 -0
- package/types/next/compositions/withPagesRouter.d.ts.map +1 -0
- package/types/next/index.d.ts +6 -0
- package/types/next/index.d.ts.map +1 -0
- package/types/next/types.d.ts +16 -0
- package/types/next/types.d.ts.map +1 -0
- package/types/test-setup.d.ts +2 -0
- package/types/test-setup.d.ts.map +1 -0
- package/types/types.d.ts +34 -0
- package/types/types.d.ts.map +1 -0
- package/types/useFathom.d.ts +7 -0
- package/types/useFathom.d.ts.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../src/FathomContext.tsx","../../../src/FathomProvider.tsx","../../../src/hooks/useFathom.ts","../../../src/next/NextFathomProviderPages.tsx","../../../src/next/NextFathomProviderApp.tsx","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../../node_modules/@babel/runtime/helpers/OverloadYield.js","../../../node_modules/@babel/runtime/helpers/regeneratorDefine.js","../../../node_modules/@babel/runtime/helpers/regenerator.js","../../../node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js","../../../node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js","../../../node_modules/@babel/runtime/helpers/regeneratorAsync.js","../../../node_modules/@babel/runtime/helpers/regeneratorKeys.js","../../../node_modules/@babel/runtime/helpers/typeof.js","../../../node_modules/@babel/runtime/helpers/regeneratorValues.js","../../../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../../../node_modules/@babel/runtime/regenerator/index.js","../../../src/next/NextFathomProvider.tsx","../../../src/next/compositions/withPagesRouter.tsx","../../../src/next/compositions/withAppRouter.tsx"],"sourcesContent":["function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import { createContext } from 'react'\n\nimport type { FathomContextInterface } from './types'\n\nexport const FathomContext = createContext<Partial<FathomContextInterface>>({})\n","import React, { useCallback, useContext, useEffect, useMemo } from 'react'\n\nimport * as Fathom from 'fathom-client'\nimport type { EventOptions, LoadOptions, PageViewOptions } from 'fathom-client'\n\nimport { FathomContext } from './FathomContext'\nimport type { FathomProviderProps } from './types'\n\nconst FathomProvider: React.FC<FathomProviderProps> = ({\n children,\n client: providedClient,\n clientOptions,\n disableDefaultTrack,\n siteId,\n defaultPageviewOptions: providedDefaultPageviewOptions,\n defaultEventOptions: providedDefaultEventOptions,\n}) => {\n // Read parent context if it exists\n const parentContext = useContext(FathomContext)\n\n // Use provided client or fall back to parent client or default Fathom\n const client = useMemo(\n () => providedClient ?? parentContext.client ?? Fathom,\n [providedClient, parentContext.client],\n )\n\n // Merge defaultPageviewOptions: provided > parent > undefined\n const defaultPageviewOptions = useMemo(\n () =>\n providedDefaultPageviewOptions ?? parentContext.defaultPageviewOptions,\n [providedDefaultPageviewOptions, parentContext.defaultPageviewOptions],\n )\n\n // Merge defaultEventOptions: provided > parent > undefined\n const defaultEventOptions = useMemo(\n () => providedDefaultEventOptions ?? parentContext.defaultEventOptions,\n [providedDefaultEventOptions, parentContext.defaultEventOptions],\n )\n\n const blockTrackingForMe = useCallback(() => {\n client.blockTrackingForMe()\n }, [client])\n\n const enableTrackingForMe = useCallback(() => {\n client.enableTrackingForMe()\n }, [client])\n\n const isTrackingEnabled = useCallback(() => {\n return client.isTrackingEnabled() ?? false\n }, [client])\n\n const load = useCallback(\n (siteId: string, clientOptions?: LoadOptions) => {\n client.load(siteId, clientOptions)\n },\n [client],\n )\n\n const setSite = useCallback(\n (siteId: string) => {\n client.setSite(siteId)\n },\n [client],\n )\n\n const trackEvent = useCallback(\n (category: string, options?: EventOptions) => {\n client.trackEvent(category, {\n ...defaultEventOptions,\n ...options,\n })\n },\n [client, defaultEventOptions],\n )\n\n const trackPageview = useCallback(\n (options?: PageViewOptions) => {\n client.trackPageview({\n ...defaultPageviewOptions,\n ...options,\n })\n },\n [client, defaultPageviewOptions],\n )\n\n const trackGoal = useCallback(\n (code: string, cents: number) => {\n client.trackGoal(code, cents)\n },\n [client],\n )\n\n useEffect(() => {\n if (siteId !== undefined) {\n load(siteId, clientOptions)\n }\n }, [clientOptions, load, siteId])\n\n return (\n <FathomContext.Provider\n value={{\n blockTrackingForMe,\n enableTrackingForMe,\n isTrackingEnabled,\n load,\n setSite,\n trackEvent,\n trackGoal,\n trackPageview,\n client,\n defaultPageviewOptions,\n defaultEventOptions,\n }}\n >\n {children}\n </FathomContext.Provider>\n )\n}\n\nFathomProvider.displayName = 'FathomProvider'\n\nexport { FathomProvider }\n","import { useContext } from 'react'\n\nimport { FathomContext } from '../FathomContext'\nimport type { FathomContextInterface } from '../types'\n\nexport const useFathom = (): FathomContextInterface => {\n const context = useContext(FathomContext)\n return context\n}\n\nuseFathom.displayName = 'useFathom'\n","import React, { useCallback, useEffect, useRef, useMemo } from 'react'\n\nimport * as Fathom from 'fathom-client'\nimport type { PageViewOptions } from 'fathom-client'\nimport { useRouter } from 'next/router'\n\nimport { FathomProvider } from '../FathomProvider'\nimport type { NextFathomProviderProps } from './types'\nimport { useFathom } from '../hooks/useFathom'\n\nconst NextFathomProviderPages: React.FC<NextFathomProviderProps> = ({\n children,\n client: providedClient,\n clientOptions,\n disableAutoTrack = false,\n siteId,\n trackDefaultOptions,\n defaultPageviewOptions: providedDefaultPageviewOptions,\n}) => {\n const router = useRouter()\n const hasTrackedInitialPageview = useRef(false)\n const parentContext = useFathom()\n\n // Use provided client or fall back to parent client or default Fathom\n const client = useMemo(\n () => providedClient ?? parentContext.client ?? Fathom,\n [providedClient, parentContext.client],\n )\n\n // Support both deprecated trackDefaultOptions and new defaultPageviewOptions\n // Priority: providedDefaultPageviewOptions > trackDefaultOptions > parent defaultPageviewOptions\n const defaultPageviewOptions = useMemo(\n () =>\n providedDefaultPageviewOptions ??\n trackDefaultOptions ??\n parentContext.defaultPageviewOptions,\n [\n providedDefaultPageviewOptions,\n trackDefaultOptions,\n parentContext.defaultPageviewOptions,\n ],\n )\n\n const trackPageview = useCallback(\n (options?: PageViewOptions) => {\n if (siteId !== undefined && client !== undefined) {\n client.trackPageview({\n ...defaultPageviewOptions,\n ...options,\n })\n }\n },\n [client, siteId, defaultPageviewOptions],\n )\n\n // Initialize Fathom on mount\n useEffect(() => {\n if (siteId !== undefined && client !== undefined) {\n client.load(siteId, clientOptions)\n }\n }, [client, clientOptions, siteId])\n\n // Track pageviews on route changes\n useEffect(() => {\n if (siteId === undefined || disableAutoTrack) {\n return\n }\n\n const handleRouteChangeComplete = (url: string): void => {\n trackPageview({\n url: window.location.origin + url,\n })\n }\n\n router.events.on('routeChangeComplete', handleRouteChangeComplete)\n\n return () => {\n router.events.off('routeChangeComplete', handleRouteChangeComplete)\n }\n }, [router.events, siteId, disableAutoTrack, trackPageview])\n\n // Track initial pageview (routeChangeComplete doesn't fire on initial load)\n useEffect(() => {\n if (\n siteId !== undefined &&\n !disableAutoTrack &&\n router.isReady &&\n !hasTrackedInitialPageview.current\n ) {\n hasTrackedInitialPageview.current = true\n trackPageview({\n url: window.location.href,\n })\n }\n }, [siteId, disableAutoTrack, router.isReady, trackPageview])\n\n return (\n <FathomProvider\n client={client}\n clientOptions={clientOptions}\n siteId={siteId}\n defaultPageviewOptions={defaultPageviewOptions}\n >\n {children}\n </FathomProvider>\n )\n}\n\nNextFathomProviderPages.displayName = 'NextFathomProviderPages'\n\nexport default NextFathomProviderPages\nexport { NextFathomProviderPages }\n","import React, { useCallback, useEffect, useRef, useMemo } from 'react'\n\nimport * as Fathom from 'fathom-client'\nimport type { PageViewOptions } from 'fathom-client'\nimport { usePathname, useSearchParams } from 'next/navigation'\n\nimport { FathomProvider } from '../FathomProvider'\nimport type { NextFathomProviderProps } from './types'\nimport { useFathom } from '../hooks/useFathom'\n\nconst NextFathomProviderApp: React.FC<NextFathomProviderProps> = ({\n children,\n client: providedClient,\n clientOptions,\n disableAutoTrack = false,\n siteId,\n trackDefaultOptions,\n defaultPageviewOptions: providedDefaultPageviewOptions,\n}) => {\n const pathname = usePathname()\n const searchParams = useSearchParams()\n const hasTrackedInitialPageview = useRef(false)\n const parentContext = useFathom()\n\n // Use provided client or fall back to parent client or default Fathom\n const client = useMemo(\n () => providedClient ?? parentContext.client ?? Fathom,\n [providedClient, parentContext.client],\n )\n\n // Support both deprecated trackDefaultOptions and new defaultPageviewOptions\n // Priority: providedDefaultPageviewOptions > trackDefaultOptions > parent defaultPageviewOptions\n const defaultPageviewOptions = useMemo(\n () =>\n providedDefaultPageviewOptions ??\n trackDefaultOptions ??\n parentContext.defaultPageviewOptions,\n [\n providedDefaultPageviewOptions,\n trackDefaultOptions,\n parentContext.defaultPageviewOptions,\n ],\n )\n\n const trackPageview = useCallback(\n (options?: PageViewOptions) => {\n if (siteId !== undefined && client !== undefined) {\n client.trackPageview({\n ...defaultPageviewOptions,\n ...options,\n })\n }\n },\n [client, siteId, defaultPageviewOptions],\n )\n\n // Initialize Fathom on mount\n useEffect(() => {\n if (siteId !== undefined && client !== undefined) {\n client.load(siteId, clientOptions)\n }\n }, [client, clientOptions, siteId])\n\n // Track pageviews on route changes\n useEffect(() => {\n if (siteId === undefined || disableAutoTrack) {\n return\n }\n\n const searchString = searchParams?.toString()\n const url =\n pathname +\n (searchString !== undefined && searchString !== ''\n ? `?${searchString}`\n : '')\n\n // Track initial pageview only once\n if (!hasTrackedInitialPageview.current) {\n hasTrackedInitialPageview.current = true\n trackPageview({\n url: window.location.origin + url,\n })\n } else {\n // Track subsequent route changes\n trackPageview({\n url: window.location.origin + url,\n })\n }\n }, [pathname, searchParams, siteId, disableAutoTrack, trackPageview])\n\n return (\n <FathomProvider\n client={client}\n clientOptions={clientOptions}\n siteId={siteId}\n defaultPageviewOptions={defaultPageviewOptions}\n >\n {children}\n </FathomProvider>\n )\n}\n\nNextFathomProviderApp.displayName = 'NextFathomProviderApp'\n\nexport default NextFathomProviderApp\nexport { NextFathomProviderApp }\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nexport { _asyncToGenerator as default };","function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regeneratorDefine = require(\"./regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regenerator = require(\"./regenerator.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var OverloadYield = require(\"./OverloadYield.js\");\nvar regenerator = require(\"./regenerator.js\");\nvar regeneratorAsync = require(\"./regeneratorAsync.js\");\nvar regeneratorAsyncGen = require(\"./regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = require(\"./regeneratorAsyncIterator.js\");\nvar regeneratorKeys = require(\"./regeneratorKeys.js\");\nvar regeneratorValues = require(\"./regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import React, { Suspense, lazy, useMemo } from 'react'\n\nimport type { NextFathomProviderProps } from './types'\n\nexport interface NextFathomProviderComponentProps extends NextFathomProviderProps {\n /**\n * Router type to use\n * @default 'app'\n */\n router?: 'pages' | 'app'\n /**\n * Fallback component to show while loading the router provider\n * @default null\n */\n fallback?: React.ReactNode\n}\n\n// Dynamically import providers to enable code-splitting\nconst NextFathomProviderAppLazy = lazy(\n async () => await import('./NextFathomProviderApp'),\n)\nconst NextFathomProviderPagesLazy = lazy(\n async () => await import('./NextFathomProviderPages'),\n)\n\n/**\n * Unified provider component that conditionally renders the appropriate\n * Next.js router provider based on the `router` prop.\n * Providers are dynamically loaded to avoid bundling both router types.\n *\n * @example\n * ```tsx\n * // App Router (default)\n * <NextFathomProvider siteId=\"YOUR_SITE_ID\" router=\"app\">\n * <App>{children}</App>\n * </NextFathomProvider>\n *\n * // Pages Router\n * <NextFathomProvider siteId=\"YOUR_SITE_ID\" router=\"pages\">\n * <App>{children}</App>\n * </NextFathomProvider>\n * ```\n */\nexport const NextFathomProvider: React.FC<NextFathomProviderComponentProps> = ({\n router = 'app',\n fallback = null,\n ...props\n}) => {\n const Provider = useMemo(() => {\n return router === 'pages'\n ? NextFathomProviderPagesLazy\n : NextFathomProviderAppLazy\n }, [router])\n\n return (\n <Suspense fallback={fallback}>\n <Provider {...props} />\n </Suspense>\n )\n}\n\nNextFathomProvider.displayName = 'NextFathomProvider'\n","import React from 'react'\nimport type { ComponentType } from 'react'\n\nimport NextFathomProviderPages from '../NextFathomProviderPages'\nimport type { NextFathomProviderProps } from '../types'\n\n/**\n * Higher-order component that wraps your Next.js Pages Router app with FathomProvider\n *\n * @example\n * ```tsx\n * // pages/_app.tsx\n * import { withPagesRouter } from 'react-fathom/next'\n *\n * function MyApp({ Component, pageProps }) {\n * return <Component {...pageProps} />\n * }\n *\n * export default withPagesRouter(MyApp, {\n * siteId: 'YOUR_SITE_ID',\n * clientOptions: {\n * spa: 'auto',\n * },\n * })\n * ```\n */\nconst withPagesRouter = <P extends object>(\n Component: ComponentType<P>,\n providerProps?: NextFathomProviderProps,\n): ComponentType<P> => {\n const WithPagesRouter: React.FC<P> = (props) => {\n return (\n <NextFathomProviderPages {...providerProps}>\n <Component {...props} />\n </NextFathomProviderPages>\n )\n }\n\n WithPagesRouter.displayName = `withPagesRouter(${Component.displayName || Component.name || 'Component'})`\n\n return WithPagesRouter\n}\n\nexport { withPagesRouter }\n","import React from 'react'\nimport type { ComponentType } from 'react'\n\nimport NextFathomProviderApp from '../NextFathomProviderApp'\nimport type { NextFathomProviderProps } from '../types'\n\n/**\n * Higher-order component that wraps your Next.js App Router app with FathomProvider\n *\n * @example\n * ```tsx\n * // app/layout.tsx\n * import { withAppRouter } from 'react-fathom/next'\n *\n * function RootLayout({ children }) {\n * return (\n * <html>\n * <body>{children}</body>\n * </html>\n * )\n * }\n *\n * export default withAppRouter(RootLayout, {\n * siteId: 'YOUR_SITE_ID',\n * clientOptions: {\n * spa: 'auto',\n * },\n * })\n * ```\n */\nconst withAppRouter = <P extends object>(\n Component: ComponentType<P>,\n providerProps?: NextFathomProviderProps,\n): ComponentType<P> => {\n const WithAppRouter: React.FC<P> = (props) => {\n return (\n <NextFathomProviderApp {...providerProps}>\n <Component {...props} />\n </NextFathomProviderApp>\n )\n }\n\n WithAppRouter.displayName = `withAppRouter(${Component.displayName || Component.name || 'Component'})`\n\n return WithAppRouter\n}\n\nexport { withAppRouter }\n"],"names":["_typeof","FathomContext","createContext","FathomProvider","_ref","children","providedClient","client","clientOptions","disableDefaultTrack","siteId","providedDefaultPageviewOptions","defaultPageviewOptions","providedDefaultEventOptions","defaultEventOptions","parentContext","useContext","useMemo","_ref2","Fathom","blockTrackingForMe","useCallback","enableTrackingForMe","isTrackingEnabled","_client$isTrackingEna","load","setSite","trackEvent","category","options","_objectSpread","trackPageview","trackGoal","code","cents","useEffect","undefined","React","createElement","Provider","value","displayName","useFathom","context","NextFathomProviderPages","_ref$disableAutoTrack","disableAutoTrack","trackDefaultOptions","router","useRouter","hasTrackedInitialPageview","useRef","_ref3","handleRouteChangeComplete","url","window","location","origin","events","on","off","isReady","current","href","NextFathomProviderApp","pathname","usePathname","searchParams","useSearchParams","searchString","toString","concat","objectWithoutPropertiesLoose","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","require$$6","NextFathomProviderAppLazy","lazy","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","sent","stop","NextFathomProviderPagesLazy","_callee2","_context2","NextFathomProvider","_ref3$router","_ref3$fallback","fallback","props","_objectWithoutProperties","_excluded","Suspense","withPagesRouter","Component","providerProps","WithPagesRouter","name","withAppRouter","WithAppRouter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,9,10,11,12,13,14,15,16,17,18,19,20,21,22]}
|
package/dist/es/index.js
ADDED
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
/*! react-fathom - 0.1.0 !*/
|
|
2
|
+
import React, { createContext, useContext, useMemo, useCallback, useEffect, useRef, forwardRef } from 'react';
|
|
3
|
+
import * as Fathom from 'fathom-client';
|
|
4
|
+
|
|
5
|
+
var FathomContext = /*#__PURE__*/createContext({});
|
|
6
|
+
|
|
7
|
+
function _typeof(o) {
|
|
8
|
+
"@babel/helpers - typeof";
|
|
9
|
+
|
|
10
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
|
|
11
|
+
return typeof o;
|
|
12
|
+
} : function (o) {
|
|
13
|
+
return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
|
|
14
|
+
}, _typeof(o);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function toPrimitive(t, r) {
|
|
18
|
+
if ("object" != _typeof(t) || !t) return t;
|
|
19
|
+
var e = t[Symbol.toPrimitive];
|
|
20
|
+
if (void 0 !== e) {
|
|
21
|
+
var i = e.call(t, r);
|
|
22
|
+
if ("object" != _typeof(i)) return i;
|
|
23
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
24
|
+
}
|
|
25
|
+
return ("string" === r ? String : Number)(t);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function toPropertyKey(t) {
|
|
29
|
+
var i = toPrimitive(t, "string");
|
|
30
|
+
return "symbol" == _typeof(i) ? i : i + "";
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function _defineProperty(e, r, t) {
|
|
34
|
+
return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
|
|
35
|
+
value: t,
|
|
36
|
+
enumerable: true,
|
|
37
|
+
configurable: true,
|
|
38
|
+
writable: true
|
|
39
|
+
}) : e[r] = t, e;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
43
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
44
|
+
var FathomProvider = function FathomProvider(_ref) {
|
|
45
|
+
var children = _ref.children,
|
|
46
|
+
providedClient = _ref.client,
|
|
47
|
+
clientOptions = _ref.clientOptions;
|
|
48
|
+
_ref.disableDefaultTrack;
|
|
49
|
+
var siteId = _ref.siteId,
|
|
50
|
+
providedDefaultPageviewOptions = _ref.defaultPageviewOptions,
|
|
51
|
+
providedDefaultEventOptions = _ref.defaultEventOptions;
|
|
52
|
+
// Read parent context if it exists
|
|
53
|
+
var parentContext = useContext(FathomContext);
|
|
54
|
+
|
|
55
|
+
// Use provided client or fall back to parent client or default Fathom
|
|
56
|
+
var client = useMemo(function () {
|
|
57
|
+
var _ref2;
|
|
58
|
+
return (_ref2 = providedClient !== null && providedClient !== void 0 ? providedClient : parentContext.client) !== null && _ref2 !== void 0 ? _ref2 : Fathom;
|
|
59
|
+
}, [providedClient, parentContext.client]);
|
|
60
|
+
|
|
61
|
+
// Merge defaultPageviewOptions: provided > parent > undefined
|
|
62
|
+
var defaultPageviewOptions = useMemo(function () {
|
|
63
|
+
return providedDefaultPageviewOptions !== null && providedDefaultPageviewOptions !== void 0 ? providedDefaultPageviewOptions : parentContext.defaultPageviewOptions;
|
|
64
|
+
}, [providedDefaultPageviewOptions, parentContext.defaultPageviewOptions]);
|
|
65
|
+
|
|
66
|
+
// Merge defaultEventOptions: provided > parent > undefined
|
|
67
|
+
var defaultEventOptions = useMemo(function () {
|
|
68
|
+
return providedDefaultEventOptions !== null && providedDefaultEventOptions !== void 0 ? providedDefaultEventOptions : parentContext.defaultEventOptions;
|
|
69
|
+
}, [providedDefaultEventOptions, parentContext.defaultEventOptions]);
|
|
70
|
+
var blockTrackingForMe = useCallback(function () {
|
|
71
|
+
client.blockTrackingForMe();
|
|
72
|
+
}, [client]);
|
|
73
|
+
var enableTrackingForMe = useCallback(function () {
|
|
74
|
+
client.enableTrackingForMe();
|
|
75
|
+
}, [client]);
|
|
76
|
+
var isTrackingEnabled = useCallback(function () {
|
|
77
|
+
var _client$isTrackingEna;
|
|
78
|
+
return (_client$isTrackingEna = client.isTrackingEnabled()) !== null && _client$isTrackingEna !== void 0 ? _client$isTrackingEna : false;
|
|
79
|
+
}, [client]);
|
|
80
|
+
var load = useCallback(function (siteId, clientOptions) {
|
|
81
|
+
client.load(siteId, clientOptions);
|
|
82
|
+
}, [client]);
|
|
83
|
+
var setSite = useCallback(function (siteId) {
|
|
84
|
+
client.setSite(siteId);
|
|
85
|
+
}, [client]);
|
|
86
|
+
var trackEvent = useCallback(function (category, options) {
|
|
87
|
+
client.trackEvent(category, _objectSpread$2(_objectSpread$2({}, defaultEventOptions), options));
|
|
88
|
+
}, [client, defaultEventOptions]);
|
|
89
|
+
var trackPageview = useCallback(function (options) {
|
|
90
|
+
client.trackPageview(_objectSpread$2(_objectSpread$2({}, defaultPageviewOptions), options));
|
|
91
|
+
}, [client, defaultPageviewOptions]);
|
|
92
|
+
var trackGoal = useCallback(function (code, cents) {
|
|
93
|
+
client.trackGoal(code, cents);
|
|
94
|
+
}, [client]);
|
|
95
|
+
useEffect(function () {
|
|
96
|
+
if (siteId !== undefined) {
|
|
97
|
+
load(siteId, clientOptions);
|
|
98
|
+
}
|
|
99
|
+
}, [clientOptions, load, siteId]);
|
|
100
|
+
return /*#__PURE__*/React.createElement(FathomContext.Provider, {
|
|
101
|
+
value: {
|
|
102
|
+
blockTrackingForMe: blockTrackingForMe,
|
|
103
|
+
enableTrackingForMe: enableTrackingForMe,
|
|
104
|
+
isTrackingEnabled: isTrackingEnabled,
|
|
105
|
+
load: load,
|
|
106
|
+
setSite: setSite,
|
|
107
|
+
trackEvent: trackEvent,
|
|
108
|
+
trackGoal: trackGoal,
|
|
109
|
+
trackPageview: trackPageview,
|
|
110
|
+
client: client,
|
|
111
|
+
defaultPageviewOptions: defaultPageviewOptions,
|
|
112
|
+
defaultEventOptions: defaultEventOptions
|
|
113
|
+
}
|
|
114
|
+
}, children);
|
|
115
|
+
};
|
|
116
|
+
FathomProvider.displayName = 'FathomProvider';
|
|
117
|
+
|
|
118
|
+
var useFathom = function useFathom() {
|
|
119
|
+
var context = useContext(FathomContext);
|
|
120
|
+
return context;
|
|
121
|
+
};
|
|
122
|
+
useFathom.displayName = 'useFathom';
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Hook to track a pageview when a component mounts
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```tsx
|
|
129
|
+
* function MyComponent() {
|
|
130
|
+
* useTrackOnMount({ url: '/custom-page' })
|
|
131
|
+
* return <div>Content</div>
|
|
132
|
+
* }
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
var useTrackOnMount = function useTrackOnMount(options) {
|
|
136
|
+
var _useFathom = useFathom(),
|
|
137
|
+
trackPageview = _useFathom.trackPageview;
|
|
138
|
+
useEffect(function () {
|
|
139
|
+
trackPageview === null || trackPageview === void 0 || trackPageview(options);
|
|
140
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
144
|
+
if (null == r) return {};
|
|
145
|
+
var t = {};
|
|
146
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
147
|
+
if (-1 !== e.indexOf(n)) continue;
|
|
148
|
+
t[n] = r[n];
|
|
149
|
+
}
|
|
150
|
+
return t;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
function _objectWithoutProperties(e, t) {
|
|
154
|
+
if (null == e) return {};
|
|
155
|
+
var o,
|
|
156
|
+
r,
|
|
157
|
+
i = _objectWithoutPropertiesLoose(e, t);
|
|
158
|
+
if (Object.getOwnPropertySymbols) {
|
|
159
|
+
var n = Object.getOwnPropertySymbols(e);
|
|
160
|
+
for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);
|
|
161
|
+
}
|
|
162
|
+
return i;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
var _excluded$4 = ["eventName", "preventDefault", "callback"];
|
|
166
|
+
/**
|
|
167
|
+
* Hook that returns a click handler function that tracks an event
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```tsx
|
|
171
|
+
* function Button() {
|
|
172
|
+
* const handleClick = useTrackOnClick({
|
|
173
|
+
* eventName: 'button-click',
|
|
174
|
+
* id: 'signup-button',
|
|
175
|
+
* callback: (e) => {
|
|
176
|
+
* console.log('Button clicked!')
|
|
177
|
+
* // Your custom logic here
|
|
178
|
+
* },
|
|
179
|
+
* })
|
|
180
|
+
*
|
|
181
|
+
* return <button onClick={handleClick}>Sign Up</button>
|
|
182
|
+
* }
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
var useTrackOnClick = function useTrackOnClick(options) {
|
|
186
|
+
var _useFathom = useFathom(),
|
|
187
|
+
trackEvent = _useFathom.trackEvent;
|
|
188
|
+
var eventName = options.eventName,
|
|
189
|
+
_options$preventDefau = options.preventDefault,
|
|
190
|
+
preventDefault = _options$preventDefau === void 0 ? false : _options$preventDefau,
|
|
191
|
+
callback = options.callback,
|
|
192
|
+
eventOptions = _objectWithoutProperties(options, _excluded$4);
|
|
193
|
+
return useCallback(function (e) {
|
|
194
|
+
if (preventDefault && e) {
|
|
195
|
+
e.preventDefault();
|
|
196
|
+
}
|
|
197
|
+
trackEvent === null || trackEvent === void 0 || trackEvent(eventName, eventOptions);
|
|
198
|
+
callback === null || callback === void 0 || callback(e);
|
|
199
|
+
}, [eventName, preventDefault, trackEvent, eventOptions, callback]);
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
var _excluded$3 = ["eventName", "observerOptions", "trackOnce", "callback"];
|
|
203
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
204
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
205
|
+
/**
|
|
206
|
+
* Hook to track an event when an element becomes visible (using Intersection Observer)
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* ```tsx
|
|
210
|
+
* function Section() {
|
|
211
|
+
* const ref = useTrackOnVisible({
|
|
212
|
+
* eventName: 'section-viewed',
|
|
213
|
+
* section: 'hero',
|
|
214
|
+
* callback: (entry) => {
|
|
215
|
+
* console.log('Section is visible!', entry.isIntersecting)
|
|
216
|
+
* // Your custom logic here
|
|
217
|
+
* },
|
|
218
|
+
* })
|
|
219
|
+
*
|
|
220
|
+
* return <section ref={ref}>Content</section>
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*/
|
|
224
|
+
var useTrackOnVisible = function useTrackOnVisible(options) {
|
|
225
|
+
var _useFathom = useFathom(),
|
|
226
|
+
trackEvent = _useFathom.trackEvent;
|
|
227
|
+
var eventName = options.eventName,
|
|
228
|
+
observerOptions = options.observerOptions,
|
|
229
|
+
_options$trackOnce = options.trackOnce,
|
|
230
|
+
trackOnce = _options$trackOnce === void 0 ? true : _options$trackOnce,
|
|
231
|
+
callback = options.callback,
|
|
232
|
+
eventOptions = _objectWithoutProperties(options, _excluded$3);
|
|
233
|
+
var ref = useRef(null);
|
|
234
|
+
var hasTracked = useRef(false);
|
|
235
|
+
useEffect(function () {
|
|
236
|
+
var element = ref.current;
|
|
237
|
+
if (!element) return;
|
|
238
|
+
var observer = new IntersectionObserver(function (entries) {
|
|
239
|
+
entries.forEach(function (entry) {
|
|
240
|
+
if (entry.isIntersecting) {
|
|
241
|
+
if (!trackOnce || !hasTracked.current) {
|
|
242
|
+
trackEvent === null || trackEvent === void 0 || trackEvent(eventName, eventOptions);
|
|
243
|
+
callback === null || callback === void 0 || callback(entry);
|
|
244
|
+
hasTracked.current = true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
});
|
|
248
|
+
}, _objectSpread$1({
|
|
249
|
+
threshold: 0.1
|
|
250
|
+
}, observerOptions));
|
|
251
|
+
observer.observe(element);
|
|
252
|
+
return function () {
|
|
253
|
+
observer.disconnect();
|
|
254
|
+
};
|
|
255
|
+
}, [eventName, eventOptions, observerOptions, trackOnce, trackEvent, callback]);
|
|
256
|
+
return ref;
|
|
257
|
+
};
|
|
258
|
+
|
|
259
|
+
var _excluded$2 = ["eventName", "children", "preventDefault", "onClick", "as"];
|
|
260
|
+
/**
|
|
261
|
+
* Component wrapper that automatically tracks clicks on its children
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```tsx
|
|
265
|
+
* <TrackClick eventName="cta-clicked" id="hero-cta">
|
|
266
|
+
* <button>Get Started</button>
|
|
267
|
+
* </TrackClick>
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
var TrackClick = function TrackClick(_ref) {
|
|
271
|
+
var eventName = _ref.eventName,
|
|
272
|
+
children = _ref.children,
|
|
273
|
+
_ref$preventDefault = _ref.preventDefault,
|
|
274
|
+
preventDefault = _ref$preventDefault === void 0 ? false : _ref$preventDefault,
|
|
275
|
+
onClick = _ref.onClick,
|
|
276
|
+
_ref$as = _ref.as,
|
|
277
|
+
Component = _ref$as === void 0 ? 'div' : _ref$as,
|
|
278
|
+
eventOptions = _objectWithoutProperties(_ref, _excluded$2);
|
|
279
|
+
var _useFathom = useFathom(),
|
|
280
|
+
trackEvent = _useFathom.trackEvent;
|
|
281
|
+
var handleClick = function handleClick(e) {
|
|
282
|
+
if (preventDefault) {
|
|
283
|
+
e.preventDefault();
|
|
284
|
+
}
|
|
285
|
+
onClick === null || onClick === void 0 || onClick(e);
|
|
286
|
+
trackEvent === null || trackEvent === void 0 || trackEvent(eventName, eventOptions);
|
|
287
|
+
};
|
|
288
|
+
return /*#__PURE__*/React.createElement(Component, {
|
|
289
|
+
onClick: handleClick
|
|
290
|
+
}, children);
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
var _excluded$1 = ["children"];
|
|
294
|
+
/**
|
|
295
|
+
* Component that tracks a pageview when it mounts
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```tsx
|
|
299
|
+
* <TrackPageview url="/custom-page">
|
|
300
|
+
* <div>Page content</div>
|
|
301
|
+
* </TrackPageview>
|
|
302
|
+
* ```
|
|
303
|
+
*/
|
|
304
|
+
var TrackPageview = function TrackPageview(_ref) {
|
|
305
|
+
var children = _ref.children,
|
|
306
|
+
pageviewOptions = _objectWithoutProperties(_ref, _excluded$1);
|
|
307
|
+
var _useFathom = useFathom(),
|
|
308
|
+
trackPageview = _useFathom.trackPageview;
|
|
309
|
+
useEffect(function () {
|
|
310
|
+
trackPageview === null || trackPageview === void 0 || trackPageview(pageviewOptions);
|
|
311
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
312
|
+
|
|
313
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
var _excluded = ["eventName", "children", "observerOptions", "trackOnce", "as"];
|
|
317
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
318
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
319
|
+
/**
|
|
320
|
+
* Component that tracks an event when it becomes visible in the viewport
|
|
321
|
+
*
|
|
322
|
+
* @example
|
|
323
|
+
* ```tsx
|
|
324
|
+
* <TrackVisible eventName="section-viewed" section="hero">
|
|
325
|
+
* <HeroSection />
|
|
326
|
+
* </TrackVisible>
|
|
327
|
+
* ```
|
|
328
|
+
*/
|
|
329
|
+
var TrackVisible = /*#__PURE__*/forwardRef(function TrackVisible(_ref, forwardedRef) {
|
|
330
|
+
var eventName = _ref.eventName,
|
|
331
|
+
children = _ref.children,
|
|
332
|
+
observerOptions = _ref.observerOptions,
|
|
333
|
+
_ref$trackOnce = _ref.trackOnce,
|
|
334
|
+
trackOnce = _ref$trackOnce === void 0 ? true : _ref$trackOnce,
|
|
335
|
+
_ref$as = _ref.as,
|
|
336
|
+
Component = _ref$as === void 0 ? 'div' : _ref$as,
|
|
337
|
+
eventOptions = _objectWithoutProperties(_ref, _excluded);
|
|
338
|
+
var _useFathom = useFathom(),
|
|
339
|
+
trackEvent = _useFathom.trackEvent;
|
|
340
|
+
var internalRef = useRef(null);
|
|
341
|
+
var hasTracked = useRef(false);
|
|
342
|
+
|
|
343
|
+
// Callback ref that handles both forwarded and internal refs
|
|
344
|
+
var setRef = useCallback(function (node) {
|
|
345
|
+
internalRef.current = node;
|
|
346
|
+
if (typeof forwardedRef === 'function') {
|
|
347
|
+
forwardedRef(node);
|
|
348
|
+
} else if (forwardedRef !== null && forwardedRef !== undefined) {
|
|
349
|
+
forwardedRef.current = node;
|
|
350
|
+
}
|
|
351
|
+
}, [forwardedRef]);
|
|
352
|
+
useEffect(function () {
|
|
353
|
+
var element = internalRef.current;
|
|
354
|
+
if (element === null) {
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
var observer = new IntersectionObserver(function (entries) {
|
|
358
|
+
entries.forEach(function (entry) {
|
|
359
|
+
if (entry.isIntersecting) {
|
|
360
|
+
if (!trackOnce || !hasTracked.current) {
|
|
361
|
+
trackEvent === null || trackEvent === void 0 || trackEvent(eventName, eventOptions);
|
|
362
|
+
hasTracked.current = true;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
});
|
|
366
|
+
}, _objectSpread({
|
|
367
|
+
threshold: 0.1
|
|
368
|
+
}, observerOptions));
|
|
369
|
+
observer.observe(element);
|
|
370
|
+
return function () {
|
|
371
|
+
observer.disconnect();
|
|
372
|
+
};
|
|
373
|
+
}, [eventName, eventOptions, observerOptions, trackOnce, trackEvent]);
|
|
374
|
+
return /*#__PURE__*/React.createElement(Component, {
|
|
375
|
+
ref: setRef
|
|
376
|
+
}, children);
|
|
377
|
+
});
|
|
378
|
+
|
|
379
|
+
export { FathomContext, FathomProvider, TrackClick, TrackPageview, TrackVisible, useFathom, useTrackOnClick, useTrackOnMount, useTrackOnVisible };
|
|
380
|
+
/* Copyright 2025 - Ryan Hefner <hi@ryanhefner.com> (https://www.ryanhefner.com) */
|
|
381
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/FathomContext.tsx","../../node_modules/@babel/runtime/helpers/esm/typeof.js","../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../src/FathomProvider.tsx","../../src/hooks/useFathom.ts","../../src/hooks/useTrackOnMount.ts","../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../src/hooks/useTrackOnClick.ts","../../src/hooks/useTrackOnVisible.ts","../../src/components/TrackClick.tsx","../../src/components/TrackPageview.tsx","../../src/components/TrackVisible.tsx"],"sourcesContent":["import { createContext } from 'react'\n\nimport type { FathomContextInterface } from './types'\n\nexport const FathomContext = createContext<Partial<FathomContextInterface>>({})\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import React, { useCallback, useContext, useEffect, useMemo } from 'react'\n\nimport * as Fathom from 'fathom-client'\nimport type { EventOptions, LoadOptions, PageViewOptions } from 'fathom-client'\n\nimport { FathomContext } from './FathomContext'\nimport type { FathomProviderProps } from './types'\n\nconst FathomProvider: React.FC<FathomProviderProps> = ({\n children,\n client: providedClient,\n clientOptions,\n disableDefaultTrack,\n siteId,\n defaultPageviewOptions: providedDefaultPageviewOptions,\n defaultEventOptions: providedDefaultEventOptions,\n}) => {\n // Read parent context if it exists\n const parentContext = useContext(FathomContext)\n\n // Use provided client or fall back to parent client or default Fathom\n const client = useMemo(\n () => providedClient ?? parentContext.client ?? Fathom,\n [providedClient, parentContext.client],\n )\n\n // Merge defaultPageviewOptions: provided > parent > undefined\n const defaultPageviewOptions = useMemo(\n () =>\n providedDefaultPageviewOptions ?? parentContext.defaultPageviewOptions,\n [providedDefaultPageviewOptions, parentContext.defaultPageviewOptions],\n )\n\n // Merge defaultEventOptions: provided > parent > undefined\n const defaultEventOptions = useMemo(\n () => providedDefaultEventOptions ?? parentContext.defaultEventOptions,\n [providedDefaultEventOptions, parentContext.defaultEventOptions],\n )\n\n const blockTrackingForMe = useCallback(() => {\n client.blockTrackingForMe()\n }, [client])\n\n const enableTrackingForMe = useCallback(() => {\n client.enableTrackingForMe()\n }, [client])\n\n const isTrackingEnabled = useCallback(() => {\n return client.isTrackingEnabled() ?? false\n }, [client])\n\n const load = useCallback(\n (siteId: string, clientOptions?: LoadOptions) => {\n client.load(siteId, clientOptions)\n },\n [client],\n )\n\n const setSite = useCallback(\n (siteId: string) => {\n client.setSite(siteId)\n },\n [client],\n )\n\n const trackEvent = useCallback(\n (category: string, options?: EventOptions) => {\n client.trackEvent(category, {\n ...defaultEventOptions,\n ...options,\n })\n },\n [client, defaultEventOptions],\n )\n\n const trackPageview = useCallback(\n (options?: PageViewOptions) => {\n client.trackPageview({\n ...defaultPageviewOptions,\n ...options,\n })\n },\n [client, defaultPageviewOptions],\n )\n\n const trackGoal = useCallback(\n (code: string, cents: number) => {\n client.trackGoal(code, cents)\n },\n [client],\n )\n\n useEffect(() => {\n if (siteId !== undefined) {\n load(siteId, clientOptions)\n }\n }, [clientOptions, load, siteId])\n\n return (\n <FathomContext.Provider\n value={{\n blockTrackingForMe,\n enableTrackingForMe,\n isTrackingEnabled,\n load,\n setSite,\n trackEvent,\n trackGoal,\n trackPageview,\n client,\n defaultPageviewOptions,\n defaultEventOptions,\n }}\n >\n {children}\n </FathomContext.Provider>\n )\n}\n\nFathomProvider.displayName = 'FathomProvider'\n\nexport { FathomProvider }\n","import { useContext } from 'react'\n\nimport { FathomContext } from '../FathomContext'\nimport type { FathomContextInterface } from '../types'\n\nexport const useFathom = (): FathomContextInterface => {\n const context = useContext(FathomContext)\n return context\n}\n\nuseFathom.displayName = 'useFathom'\n","import { useEffect } from 'react'\n\nimport type { PageViewOptions } from 'fathom-client'\n\nimport { useFathom } from './useFathom'\n\n/**\n * Hook to track a pageview when a component mounts\n *\n * @example\n * ```tsx\n * function MyComponent() {\n * useTrackOnMount({ url: '/custom-page' })\n * return <div>Content</div>\n * }\n * ```\n */\nexport const useTrackOnMount = (options?: PageViewOptions) => {\n const { trackPageview } = useFathom()\n\n useEffect(() => {\n trackPageview?.(options)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n}\n","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n if (null == e) return {};\n var o,\n r,\n i = objectWithoutPropertiesLoose(e, t);\n if (Object.getOwnPropertySymbols) {\n var n = Object.getOwnPropertySymbols(e);\n for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n }\n return i;\n}\nexport { _objectWithoutProperties as default };","import { useCallback } from 'react'\nimport type { MouseEvent } from 'react'\n\nimport type { EventOptions } from 'fathom-client'\n\nimport { useFathom } from './useFathom'\n\nexport interface UseTrackOnClickOptions extends EventOptions {\n /**\n * Event name to track\n */\n eventName: string\n /**\n * Whether to prevent default behavior\n * @default false\n */\n preventDefault?: boolean\n /**\n * Optional callback function to run after tracking\n * Receives the click event as a parameter\n */\n callback?: (e?: MouseEvent) => void\n}\n\n/**\n * Hook that returns a click handler function that tracks an event\n *\n * @example\n * ```tsx\n * function Button() {\n * const handleClick = useTrackOnClick({\n * eventName: 'button-click',\n * id: 'signup-button',\n * callback: (e) => {\n * console.log('Button clicked!')\n * // Your custom logic here\n * },\n * })\n *\n * return <button onClick={handleClick}>Sign Up</button>\n * }\n * ```\n */\nexport const useTrackOnClick = (\n options: UseTrackOnClickOptions,\n): ((e?: MouseEvent) => void) => {\n const { trackEvent } = useFathom()\n const {\n eventName,\n preventDefault = false,\n callback,\n ...eventOptions\n } = options\n\n return useCallback(\n (e?: MouseEvent) => {\n if (preventDefault && e) {\n e.preventDefault()\n }\n trackEvent?.(eventName, eventOptions)\n callback?.(e)\n },\n [eventName, preventDefault, trackEvent, eventOptions, callback],\n )\n}\n","import { useEffect, useRef } from 'react'\nimport type { RefObject } from 'react'\n\nimport type { EventOptions } from 'fathom-client'\n\nimport { useFathom } from './useFathom'\n\nexport interface UseTrackOnVisibleOptions extends EventOptions {\n /**\n * Event name to track\n */\n eventName: string\n /**\n * Intersection observer options\n */\n observerOptions?: IntersectionObserverInit\n /**\n * Whether to track only once or every time it becomes visible\n * @default true\n */\n trackOnce?: boolean\n /**\n * Optional callback function to run after tracking\n * Receives the intersection observer entry as a parameter\n */\n callback?: (entry: IntersectionObserverEntry) => void\n}\n\n/**\n * Hook to track an event when an element becomes visible (using Intersection Observer)\n *\n * @example\n * ```tsx\n * function Section() {\n * const ref = useTrackOnVisible({\n * eventName: 'section-viewed',\n * section: 'hero',\n * callback: (entry) => {\n * console.log('Section is visible!', entry.isIntersecting)\n * // Your custom logic here\n * },\n * })\n *\n * return <section ref={ref}>Content</section>\n * }\n * ```\n */\nexport const useTrackOnVisible = (\n options: UseTrackOnVisibleOptions,\n): RefObject<HTMLElement | null> => {\n const { trackEvent } = useFathom()\n const {\n eventName,\n observerOptions,\n trackOnce = true,\n callback,\n ...eventOptions\n } = options\n const ref = useRef<HTMLElement | null>(null)\n const hasTracked = useRef(false)\n\n useEffect(() => {\n const element = ref.current\n if (!element) return\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!trackOnce || !hasTracked.current) {\n trackEvent?.(eventName, eventOptions)\n callback?.(entry)\n hasTracked.current = true\n }\n }\n })\n },\n {\n threshold: 0.1,\n ...observerOptions,\n },\n )\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n }\n }, [\n eventName,\n eventOptions,\n observerOptions,\n trackOnce,\n trackEvent,\n callback,\n ])\n\n return ref\n}\n","import React from 'react'\nimport type { ElementType, MouseEvent, ReactNode } from 'react'\n\nimport type { EventOptions } from 'fathom-client'\n\nimport { useFathom } from '../hooks/useFathom'\n\nexport interface TrackClickProps extends EventOptions {\n /**\n * Event name to track\n */\n eventName: string\n /**\n * Child element(s) to wrap\n */\n children: ReactNode\n /**\n * Whether to prevent default behavior\n * @default false\n */\n preventDefault?: boolean\n /**\n * Custom onClick handler (will be called before tracking)\n */\n onClick?: (e: MouseEvent) => void\n /**\n * HTML element to render as wrapper\n * @default 'div'\n */\n as?: ElementType\n}\n\n/**\n * Component wrapper that automatically tracks clicks on its children\n *\n * @example\n * ```tsx\n * <TrackClick eventName=\"cta-clicked\" id=\"hero-cta\">\n * <button>Get Started</button>\n * </TrackClick>\n * ```\n */\nexport const TrackClick: React.FC<TrackClickProps> = ({\n eventName,\n children,\n preventDefault = false,\n onClick,\n as: Component = 'div',\n ...eventOptions\n}) => {\n const { trackEvent } = useFathom()\n\n const handleClick = (e: MouseEvent) => {\n if (preventDefault) {\n e.preventDefault()\n }\n onClick?.(e)\n trackEvent?.(eventName, eventOptions)\n }\n\n return <Component onClick={handleClick}>{children}</Component>\n}\n","import React, { useEffect } from 'react'\nimport type { ReactNode } from 'react'\n\nimport type { PageViewOptions } from 'fathom-client'\n\nimport { useFathom } from '../hooks/useFathom'\n\nexport interface TrackPageviewProps extends PageViewOptions {\n /**\n * Child element(s) to render\n */\n children?: ReactNode\n}\n\n/**\n * Component that tracks a pageview when it mounts\n *\n * @example\n * ```tsx\n * <TrackPageview url=\"/custom-page\">\n * <div>Page content</div>\n * </TrackPageview>\n * ```\n */\nexport const TrackPageview: React.FC<TrackPageviewProps> = ({\n children,\n ...pageviewOptions\n}) => {\n const { trackPageview } = useFathom()\n\n useEffect(() => {\n trackPageview?.(pageviewOptions)\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n\n return <>{children}</>\n}\n","import React, { useEffect, useRef, forwardRef, useCallback } from 'react'\nimport type { ElementType, ReactNode } from 'react'\n\nimport type { EventOptions } from 'fathom-client'\n\nimport { useFathom } from '../hooks/useFathom'\n\nexport interface TrackVisibleProps extends EventOptions {\n /**\n * Event name to track\n */\n eventName: string\n /**\n * Child element(s) to render\n */\n children?: ReactNode\n /**\n * Intersection observer options\n */\n observerOptions?: IntersectionObserverInit\n /**\n * Whether to track only once or every time it becomes visible\n * @default true\n */\n trackOnce?: boolean\n /**\n * HTML element to render as wrapper\n * @default 'div'\n */\n as?: ElementType\n}\n\n/**\n * Component that tracks an event when it becomes visible in the viewport\n *\n * @example\n * ```tsx\n * <TrackVisible eventName=\"section-viewed\" section=\"hero\">\n * <HeroSection />\n * </TrackVisible>\n * ```\n */\nexport const TrackVisible = forwardRef<HTMLDivElement, TrackVisibleProps>(\n function TrackVisible(\n {\n eventName,\n children,\n observerOptions,\n trackOnce = true,\n as: Component = 'div',\n ...eventOptions\n },\n forwardedRef,\n ) {\n const { trackEvent } = useFathom()\n const internalRef = useRef<HTMLDivElement | null>(null)\n const hasTracked = useRef(false)\n\n // Callback ref that handles both forwarded and internal refs\n const setRef = useCallback(\n (node: HTMLDivElement | null) => {\n internalRef.current = node\n\n if (typeof forwardedRef === 'function') {\n forwardedRef(node)\n } else if (forwardedRef !== null && forwardedRef !== undefined) {\n forwardedRef.current = node\n }\n },\n [forwardedRef],\n )\n\n useEffect(() => {\n const element = internalRef.current\n if (element === null) {\n return\n }\n\n const observer = new IntersectionObserver(\n (entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (!trackOnce || !hasTracked.current) {\n trackEvent?.(eventName, eventOptions)\n hasTracked.current = true\n }\n }\n })\n },\n {\n threshold: 0.1,\n ...observerOptions,\n },\n )\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n }\n }, [eventName, eventOptions, observerOptions, trackOnce, trackEvent])\n\n return <Component ref={setRef}>{children}</Component>\n },\n)\n"],"names":["FathomContext","createContext","FathomProvider","_ref","children","providedClient","client","clientOptions","disableDefaultTrack","siteId","providedDefaultPageviewOptions","defaultPageviewOptions","providedDefaultEventOptions","defaultEventOptions","parentContext","useContext","useMemo","_ref2","Fathom","blockTrackingForMe","useCallback","enableTrackingForMe","isTrackingEnabled","_client$isTrackingEna","load","setSite","trackEvent","category","options","_objectSpread","trackPageview","trackGoal","code","cents","useEffect","undefined","React","createElement","Provider","value","displayName","useFathom","context","useTrackOnMount","_useFathom","objectWithoutPropertiesLoose","useTrackOnClick","eventName","_options$preventDefau","preventDefault","callback","eventOptions","_objectWithoutProperties","_excluded","e","useTrackOnVisible","observerOptions","_options$trackOnce","trackOnce","ref","useRef","hasTracked","element","current","observer","IntersectionObserver","entries","forEach","entry","isIntersecting","threshold","observe","disconnect","TrackClick","_ref$preventDefault","onClick","_ref$as","as","Component","handleClick","TrackPageview","pageviewOptions","Fragment","TrackVisible","forwardRef","forwardedRef","_ref$trackOnce","internalRef","setRef","node"],"mappings":"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","x_google_ignoreList":[1,2,3,4,8,9]}
|