@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.
@@ -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 ctx = useCustomComponentRenderer();
49
- if (component === null || component === void 0 ? void 0 : component.Component) {
50
- const children = (_jsx(Renderer, Object.assign({ renderCount: renderCount + 1 }, props, { Component: component.Component, props: Object.assign(Object.assign({}, component.props), props.props) })));
51
- return (ctx === null || ctx === void 0 ? void 0 : ctx.customRendererComponent) ? (_jsx(ctx.customRendererComponent, { Component: component.Component, children: children })) : (children);
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
  };