@logsnag/next
Version:
LogSnag client for Next applications
59 lines (54 loc) • 1.65 kB
JavaScript
import React from 'react';
import Script from 'next/script';
// src/client/provider.tsx
// ../../utilities/constants/src/cdn.ts
var CDN_URL = "https://cdn.logsnag.com/web/ls.js";
var LogSnagProvider = ({ project, token, children }) => {
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Script, { id: "logsnag-script", async: true, defer: true, src: CDN_URL }), /* @__PURE__ */ React.createElement(
Script,
{
id: "logsnag-init",
dangerouslySetInnerHTML: {
__html: `
window.lsq = window.lsq || [];
window.ls = window.ls || ((...args) => window.lsq.push(args));
window.ls('setConfig', '${token}', '${project}');
`
}
}
), children);
};
// ../../utilities/hooks/src/funcs.ts
var setUserId = (userId) => {
window.ls("setUserId", userId);
};
var clearUserId = () => {
window.ls("clearUserId");
};
var setDebug = (flag = true) => {
window.ls("setDebug", flag);
};
var track = (options) => {
window.ls("track", options);
};
var identify = (options) => {
window.ls("identify", options);
};
// ../../utilities/hooks/src/hooks.ts
var useLogSnag = () => {
return {
setDebug,
setUserId,
clearUserId,
track,
identify
};
};
var SetUserIdServerComponent = ({
userId
}) => {
return /* @__PURE__ */ React.createElement(Script, { type: "text/javascript", strategy: "afterInteractive" }, `window.ls('setUserId', ${userId ? `'${userId}'` : null});`);
};
export { LogSnagProvider, SetUserIdServerComponent, useLogSnag };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.mjs.map