@axiomhq/react
Version:
The official React package for Axiom
37 lines (36 loc) • 1.24 kB
JavaScript
"use client";
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
function createUseLogger(logger) {
if (!logger) {
throw new Error("A logger must be provided to create useLogger");
}
const useLogger = () => {
const [path, setPath] = React.useState(typeof window !== "undefined" ? window.location.pathname : "");
React.useEffect(() => {
const handleLocationChange = () => {
setPath(window.location.pathname);
};
window.addEventListener("popstate", handleLocationChange);
window.addEventListener("pushState", handleLocationChange);
window.addEventListener("replaceState", handleLocationChange);
return () => {
window.removeEventListener("popstate", handleLocationChange);
window.removeEventListener("pushState", handleLocationChange);
window.removeEventListener("replaceState", handleLocationChange);
};
}, []);
React.useEffect(() => {
return () => {
if (logger) {
logger.flush();
}
};
}, [path]);
return logger;
};
return useLogger;
}
exports.createUseLogger = createUseLogger;
//# sourceMappingURL=use-logger.cjs.map