infinity-forge
Version:
35 lines • 2.27 kB
JavaScript
;
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