@blocklet/pages-kit 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/api/pages-kit.js +4 -2
- package/lib/cjs/components/CustomComponentRenderer/index.js +12 -7
- package/lib/cjs/components/CustomComponentRenderer/state.js +4 -2
- package/lib/cjs/tsconfig.tsbuildinfo +1 -1
- package/lib/esm/api/pages-kit.js +4 -2
- package/lib/esm/components/CustomComponentRenderer/index.js +12 -7
- package/lib/esm/components/CustomComponentRenderer/state.js +4 -2
- package/lib/esm/tsconfig.tsbuildinfo +1 -1
- package/lib/types/components/CustomComponentRenderer/index.d.ts +1 -0
- package/lib/types/components/CustomComponentRenderer/state.d.ts +1 -0
- package/lib/types/tsconfig.tsbuildinfo +1 -1
- package/lib/types/types/core.d.ts +1 -1
- package/package.json +6 -6
package/lib/esm/api/pages-kit.js
CHANGED
|
@@ -12,8 +12,10 @@ import { joinURL } from 'ufo';
|
|
|
12
12
|
const PAGES_KIT_DID = 'z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o';
|
|
13
13
|
export function preloadComponents(input) {
|
|
14
14
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15
|
-
var _a, _b;
|
|
16
|
-
const prefix = ((_b = (_a = window.blocklet) === null || _a === void 0 ? void 0 : _a.componentMountPoints.find((i) => i.did === PAGES_KIT_DID)) === null || _b === void 0 ? void 0 : _b.mountPoint) ||
|
|
15
|
+
var _a, _b, _c;
|
|
16
|
+
const prefix = ((_b = (_a = window.blocklet) === null || _a === void 0 ? void 0 : _a.componentMountPoints.find((i) => i.did === PAGES_KIT_DID && i.status === '"running"')) === null || _b === void 0 ? void 0 : _b.mountPoint) ||
|
|
17
|
+
((_c = window === null || window === void 0 ? void 0 : window.blocklet) === null || _c === void 0 ? void 0 : _c.prefix) ||
|
|
18
|
+
'/';
|
|
17
19
|
return axios.post(joinURL(prefix, '/api/components/preload'), input).then((res) => res.data);
|
|
18
20
|
});
|
|
19
21
|
}
|
|
@@ -25,7 +25,7 @@ export default function CustomComponentRenderer(_a) {
|
|
|
25
25
|
var { dev } = _a, props = __rest(_a, ["dev"]);
|
|
26
26
|
const inheritedDev = useDev();
|
|
27
27
|
const BuiltinComponent = BuiltinComponents[props.componentId];
|
|
28
|
-
return (_jsx(ErrorBoundary, { FallbackComponent: (props === null || props === void 0 ? void 0 : props.fallbackRender) || ErrorView, resetKeys: [Date.now()], children: _jsx(DevProvider, { dev: dev !== null && dev !== void 0 ? dev : inheritedDev, children: BuiltinComponent ? (_jsx(BuiltinComponent, Object.assign({}, props))) : (_jsx(ComponentRenderer, Object.assign({}, props, { instanceId: (_b = props.instanceId) !== null && _b !== void 0 ? _b : props.componentId }))) }) }));
|
|
28
|
+
return (_jsx(ErrorBoundary, { FallbackComponent: (props === null || props === void 0 ? void 0 : props.fallbackRender) || ErrorView, resetKeys: [Date.now()], children: _jsx(DevProvider, { dev: dev !== null && dev !== void 0 ? dev : inheritedDev, children: BuiltinComponent ? (_jsx(BuiltinComponent, Object.assign({}, props))) : (_jsx(ComponentRenderer, Object.assign({}, props, { instanceId: (_b = props.instanceId) !== null && _b !== void 0 ? _b : props.componentId, renderType: props.renderType }))) }) }));
|
|
29
29
|
}
|
|
30
30
|
const BuiltinComponents = {
|
|
31
31
|
'blocklet-react-component': BlockletReactComponentRenderer,
|
|
@@ -35,20 +35,25 @@ function ErrorView({ error }) {
|
|
|
35
35
|
}
|
|
36
36
|
function ComponentRenderer(_a) {
|
|
37
37
|
var _b;
|
|
38
|
-
var { renderCount = 0, blockletId, blockletTitle, componentName } = _a, props = __rest(_a, ["renderCount", "blockletId", "blockletTitle", "componentName"]);
|
|
38
|
+
var { renderCount = 0, blockletId, blockletTitle, componentName, renderType = 'view' } = _a, props = __rest(_a, ["renderCount", "blockletId", "blockletTitle", "componentName", "renderType"]);
|
|
39
39
|
const dev = useDev();
|
|
40
40
|
if (renderCount > MAXIMUM_RENDER_STACK_SIZE) {
|
|
41
41
|
throw new Error('Maximum render stack size exceeded');
|
|
42
42
|
}
|
|
43
43
|
const component = useComponent(Object.assign(Object.assign({}, props), { dev }));
|
|
44
|
+
const ctx = useCustomComponentRenderer();
|
|
44
45
|
if (component === null || component === void 0 ? void 0 : component.error) {
|
|
45
|
-
// throw to outer error boundary
|
|
46
46
|
throw component.error;
|
|
47
47
|
}
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
const renderComponentChildren = (Component) => {
|
|
49
|
+
const children = (_jsx(Renderer, Object.assign({ renderCount: renderCount + 1 }, props, { Component: Component, props: Object.assign(Object.assign({}, component === null || component === void 0 ? void 0 : component.props), props.props) })));
|
|
50
|
+
return (ctx === null || ctx === void 0 ? void 0 : ctx.customRendererComponent) ? (_jsx(ctx.customRendererComponent, { Component: Component, children: children })) : (children);
|
|
51
|
+
};
|
|
52
|
+
if ((component === null || component === void 0 ? void 0 : component.Component) && renderType === 'view') {
|
|
53
|
+
return renderComponentChildren(component.Component);
|
|
54
|
+
}
|
|
55
|
+
if ((component === null || component === void 0 ? void 0 : component.EditComponent) && renderType === 'setting') {
|
|
56
|
+
return renderComponentChildren(component.EditComponent);
|
|
52
57
|
}
|
|
53
58
|
// if the component is not in the dev.components, it means the component is not loaded
|
|
54
59
|
if ((dev === null || dev === void 0 ? void 0 : dev.mode) === 'draft' && dev && ((_b = dev.components) === null || _b === void 0 ? void 0 : _b[props.componentId]) === undefined) {
|
|
@@ -160,6 +160,7 @@ export function useComponent({ instanceId, componentId, properties, locale, dev
|
|
|
160
160
|
const componentProperties = (_a = transpile === null || transpile === void 0 ? void 0 : transpile.componentProperties) !== null && _a !== void 0 ? _a : preload === null || preload === void 0 ? void 0 : preload.componentProperties;
|
|
161
161
|
return {
|
|
162
162
|
Component: (_b = transpile === null || transpile === void 0 ? void 0 : transpile.Component) !== null && _b !== void 0 ? _b : preload === null || preload === void 0 ? void 0 : preload.Component,
|
|
163
|
+
EditComponent: transpile === null || transpile === void 0 ? void 0 : transpile.EditComponent,
|
|
163
164
|
props: Object.assign(Object.assign({}, ((_c = transpile === null || transpile === void 0 ? void 0 : transpile.props) !== null && _c !== void 0 ? _c : preload === null || preload === void 0 ? void 0 : preload.props)), Object.fromEntries(Object.entries(properties !== null && properties !== void 0 ? properties : {})
|
|
164
165
|
.map(([key, { value }]) => {
|
|
165
166
|
var _a;
|
|
@@ -202,7 +203,7 @@ function usePreloadComponent({ instanceId, componentId, properties, locale, dev
|
|
|
202
203
|
}
|
|
203
204
|
function useTranspileComponent({ componentId, locale, properties, dev: { defaultLocale, components } = {}, }) {
|
|
204
205
|
var _a, _b;
|
|
205
|
-
const [{ error, Component, propertiesFromCode }, setComponent] = useState({});
|
|
206
|
+
const [{ error, Component, EditComponent, propertiesFromCode }, setComponent] = useState({});
|
|
206
207
|
const component = mergeComponent({
|
|
207
208
|
componentId,
|
|
208
209
|
getComponent: (componentId) => {
|
|
@@ -224,7 +225,7 @@ function useTranspileComponent({ componentId, locale, properties, dev: { default
|
|
|
224
225
|
.then((m) => {
|
|
225
226
|
// get properties from code
|
|
226
227
|
const propertiesFromCode = getPropertiesFromCode(m);
|
|
227
|
-
setComponent({ Component: m.default, propertiesFromCode });
|
|
228
|
+
setComponent({ Component: m.default, EditComponent: m.EditComponent || undefined, propertiesFromCode });
|
|
228
229
|
})
|
|
229
230
|
.catch((error) => {
|
|
230
231
|
setComponent({ error });
|
|
@@ -234,6 +235,7 @@ function useTranspileComponent({ componentId, locale, properties, dev: { default
|
|
|
234
235
|
return {
|
|
235
236
|
error,
|
|
236
237
|
Component,
|
|
238
|
+
EditComponent,
|
|
237
239
|
props: component === null || component === void 0 ? void 0 : component.properties,
|
|
238
240
|
componentProperties: (_b = (_a = components === null || components === void 0 ? void 0 : components[componentId]) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.properties,
|
|
239
241
|
};
|