UNPKG

infinity-forge

Version:
35 lines 2.27 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FacebookPixel = FacebookPixel; exports.useTrackPageViews = useTrackPageViews; var jsx_runtime_1 = require("react/jsx-runtime"); var react_1 = require("react"); var router_1 = require("next/router"); var head_1 = __importDefault(require("next/head")); function FacebookPixel(_a) { var pixelId = _a.pixelId; return ((0, jsx_runtime_1.jsx)(head_1.default, { children: (0, jsx_runtime_1.jsx)("script", { dangerouslySetInnerHTML: { __html: "\n if (!window.fbq) {\n !function(f,b,e,v,n,t,s) {\n if (f.fbq) return;\n n = f.fbq = function() {\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n };\n if (!f._fbq) f._fbq = n;\n n.push = n;\n n.loaded = !0;\n n.version = '2.0';\n n.queue = [];\n t = b.createElement(e);\n t.async = !0;\n t.src = v;\n s = b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t, s);\n }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');\n \n fbq('init', '".concat(pixelId, "');\n }\n fbq('track', 'PageView');\n "), } }) })); } function useTrackPageViews(pixelId) { var router = (0, router_1.useRouter)(); (0, react_1.useEffect)(function () { if (!pixelId || typeof window === 'undefined' || !window.fbq) { return; } var handleRouteChange = function (url) { if (typeof window !== 'undefined' && window.fbq) { window.fbq('track', 'PageView', { url: url }); } }; router.events.on('routeChangeComplete', handleRouteChange); return function () { router.events.off('routeChangeComplete', handleRouteChange); }; }, [pixelId, router.events]); } //# sourceMappingURL=use-track-page-views.js.map