Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
99 lines
2.3 KiB
Plaintext
99 lines
2.3 KiB
Plaintext
'use client';
|
|
|
|
import { c as _c } from "react/compiler-runtime";
|
|
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
import { ShimmerEffect, useServerFunctions } from '@payloadcms/ui';
|
|
import React, { useCallback, useEffect, useRef } from 'react';
|
|
/**
|
|
* Utility to render a widget on-demand on the client.
|
|
*/
|
|
export const RenderWidget = t0 => {
|
|
const $ = _c(9);
|
|
const {
|
|
widgetId
|
|
} = t0;
|
|
const [Component, setComponent] = React.useState(null);
|
|
const {
|
|
serverFunction
|
|
} = useServerFunctions();
|
|
let t1;
|
|
if ($[0] !== serverFunction || $[1] !== widgetId) {
|
|
t1 = () => {
|
|
const render = async function render() {
|
|
;
|
|
try {
|
|
const widgetSlug = widgetId.slice(0, widgetId.lastIndexOf("-"));
|
|
const result = await serverFunction({
|
|
name: "render-widget",
|
|
args: {
|
|
widgetSlug
|
|
}
|
|
});
|
|
setComponent(result.component);
|
|
} catch (t2) {
|
|
setComponent(React.createElement("div", {
|
|
style: {
|
|
background: "var(--theme-error-50)",
|
|
border: "1px solid var(--theme-error-200)",
|
|
borderRadius: "4px",
|
|
color: "var(--theme-error-text)",
|
|
padding: "20px",
|
|
textAlign: "center"
|
|
}
|
|
}, "Failed to load widget. Please try again later."));
|
|
}
|
|
};
|
|
render();
|
|
};
|
|
$[0] = serverFunction;
|
|
$[1] = widgetId;
|
|
$[2] = t1;
|
|
} else {
|
|
t1 = $[2];
|
|
}
|
|
const renderWidget = t1;
|
|
const mounted = useRef(false);
|
|
let t2;
|
|
let t3;
|
|
if ($[3] !== renderWidget) {
|
|
t2 = () => {
|
|
if (mounted.current) {
|
|
return;
|
|
}
|
|
mounted.current = true;
|
|
renderWidget();
|
|
};
|
|
t3 = [renderWidget];
|
|
$[3] = renderWidget;
|
|
$[4] = t2;
|
|
$[5] = t3;
|
|
} else {
|
|
t2 = $[4];
|
|
t3 = $[5];
|
|
}
|
|
useEffect(t2, t3);
|
|
if (!Component) {
|
|
let t4;
|
|
if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
|
|
t4 = _jsx(ShimmerEffect, {
|
|
height: "100%"
|
|
});
|
|
$[6] = t4;
|
|
} else {
|
|
t4 = $[6];
|
|
}
|
|
return t4;
|
|
}
|
|
let t4;
|
|
if ($[7] !== Component) {
|
|
t4 = _jsx(_Fragment, {
|
|
children: Component
|
|
});
|
|
$[7] = Component;
|
|
$[8] = t4;
|
|
} else {
|
|
t4 = $[8];
|
|
}
|
|
return t4;
|
|
};
|
|
//# sourceMappingURL=RenderWidget.js.map |