@croct/plug-react
Version:
React components and hooks to plug your React applications into Croct.
77 lines (76 loc) • 2.63 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var ssr_polyfills_exports = {};
__export(ssr_polyfills_exports, {
croct: () => croct,
isSsr: () => isSsr
});
module.exports = __toCommonJS(ssr_polyfills_exports);
var import_plug = require("@croct/plug/plug");
function isSsr() {
return globalThis.window?.document?.createElement === void 0;
}
const croct = !isSsr() ? function factory() {
let timeoutId = null;
let resolveCallback;
let rejectCallback;
return new Proxy(import_plug.GlobalPlug.GLOBAL, {
get: function getProperty2(target, property) {
switch (property) {
case "plug":
if (timeoutId !== null) {
clearTimeout(timeoutId);
timeoutId = null;
rejectCallback?.(new Error("Unplug cancelled."));
}
break;
case "unplug":
return () => {
timeoutId = setTimeout(() => target.unplug().then(resolveCallback, rejectCallback), 100);
return new Promise((resolve, reject) => {
resolveCallback = resolve;
rejectCallback = reject;
});
};
}
return target[property];
}
});
}() : new Proxy(import_plug.GlobalPlug.GLOBAL, {
get: function getProperty(_, property) {
switch (property) {
case "initialized":
return false;
case "plug":
return () => {
};
case "unplug":
return () => Promise.resolve();
default:
throw new Error(
`Property croct.${String(property)} is not supported on server-side (SSR). Consider refactoring the logic as a side-effect (useEffect) or a client-side callback (onClick, onChange, etc). For help, see https://croct.help/sdk/react/client-logic-ssr`
);
}
}
});
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
croct,
isSsr
});