@cmssy/react 8.0.2 → 8.0.4

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/dist/client.cjs CHANGED
@@ -652,7 +652,8 @@ function CmssyEditableLayout({
652
652
  locale = "en",
653
653
  defaultLocale = "en",
654
654
  enabledLocales,
655
- edit
655
+ edit,
656
+ data
656
657
  }) {
657
658
  const blockMap = react.useMemo(() => buildBlockMap(blocks), [blocks]);
658
659
  const layoutBlocks = react.useMemo(() => {
@@ -674,7 +675,8 @@ function CmssyEditableLayout({
674
675
  blockMap,
675
676
  patchedContent: patches[block.id],
676
677
  layoutPosition: position,
677
- context
678
+ context,
679
+ data: data?.[block.id]
678
680
  },
679
681
  block.id
680
682
  )) });
package/dist/client.d.cts CHANGED
@@ -74,8 +74,9 @@ interface CmssyEditableLayoutProps {
74
74
  defaultLocale?: string;
75
75
  enabledLocales?: string[];
76
76
  edit: EditBridgeConfig;
77
+ data?: Record<string, unknown>;
77
78
  }
78
- declare function CmssyEditableLayout({ groups, blocks, position, locale, defaultLocale, enabledLocales, edit, }: CmssyEditableLayoutProps): react_jsx_runtime.JSX.Element | null;
79
+ declare function CmssyEditableLayout({ groups, blocks, position, locale, defaultLocale, enabledLocales, edit, data, }: CmssyEditableLayoutProps): react_jsx_runtime.JSX.Element | null;
79
80
 
80
81
  interface CmssyLazyLayoutProps {
81
82
  groups: CmssyLayoutGroup[];
@@ -84,6 +85,7 @@ interface CmssyLazyLayoutProps {
84
85
  defaultLocale?: string;
85
86
  enabledLocales?: string[];
86
87
  edit: EditBridgeConfig;
88
+ data?: Record<string, unknown>;
87
89
  load: () => Promise<{
88
90
  blocks: BlockDefinition[];
89
91
  }>;
package/dist/client.d.ts CHANGED
@@ -74,8 +74,9 @@ interface CmssyEditableLayoutProps {
74
74
  defaultLocale?: string;
75
75
  enabledLocales?: string[];
76
76
  edit: EditBridgeConfig;
77
+ data?: Record<string, unknown>;
77
78
  }
78
- declare function CmssyEditableLayout({ groups, blocks, position, locale, defaultLocale, enabledLocales, edit, }: CmssyEditableLayoutProps): react_jsx_runtime.JSX.Element | null;
79
+ declare function CmssyEditableLayout({ groups, blocks, position, locale, defaultLocale, enabledLocales, edit, data, }: CmssyEditableLayoutProps): react_jsx_runtime.JSX.Element | null;
79
80
 
80
81
  interface CmssyLazyLayoutProps {
81
82
  groups: CmssyLayoutGroup[];
@@ -84,6 +85,7 @@ interface CmssyLazyLayoutProps {
84
85
  defaultLocale?: string;
85
86
  enabledLocales?: string[];
86
87
  edit: EditBridgeConfig;
88
+ data?: Record<string, unknown>;
87
89
  load: () => Promise<{
88
90
  blocks: BlockDefinition[];
89
91
  }>;
package/dist/client.js CHANGED
@@ -651,7 +651,8 @@ function CmssyEditableLayout({
651
651
  locale = "en",
652
652
  defaultLocale = "en",
653
653
  enabledLocales,
654
- edit
654
+ edit,
655
+ data
655
656
  }) {
656
657
  const blockMap = useMemo(() => buildBlockMap(blocks), [blocks]);
657
658
  const layoutBlocks = useMemo(() => {
@@ -673,7 +674,8 @@ function CmssyEditableLayout({
673
674
  blockMap,
674
675
  patchedContent: patches[block.id],
675
676
  layoutPosition: position,
676
- context
677
+ context,
678
+ data: data?.[block.id]
677
679
  },
678
680
  block.id
679
681
  )) });
package/dist/index.cjs CHANGED
@@ -217,6 +217,42 @@ async function resolveBlockData({
217
217
  });
218
218
  return data;
219
219
  }
220
+ async function resolveLayoutBlockData({
221
+ groups,
222
+ blocks,
223
+ position,
224
+ locale,
225
+ defaultLocale,
226
+ enabledLocales,
227
+ forms,
228
+ isPreview = false
229
+ }) {
230
+ const group = groups.find((g) => g.position === position);
231
+ const layoutBlocks = group ? group.blocks.filter((b) => b.isActive).slice().sort((a, b) => a.order - b.order) : [];
232
+ if (layoutBlocks.length === 0) return {};
233
+ const loaderMap = buildLoaderMap(blocks);
234
+ const context = core.buildBlockContext(
235
+ locale,
236
+ defaultLocale,
237
+ enabledLocales,
238
+ isPreview,
239
+ forms
240
+ );
241
+ const resolved = await resolveBlocks(
242
+ layoutBlocks,
243
+ loaderMap,
244
+ locale,
245
+ defaultLocale,
246
+ context,
247
+ enabledLocales
248
+ );
249
+ const data = {};
250
+ layoutBlocks.forEach((block, index) => {
251
+ const value = resolved[index]?.data;
252
+ if (value !== void 0) data[block.id] = value;
253
+ });
254
+ return data;
255
+ }
220
256
  async function CmssyServerLayout({
221
257
  groups,
222
258
  blocks,
@@ -441,3 +477,4 @@ exports.blocksToSchemas = blocksToSchemas;
441
477
  exports.buildBlockMap = buildBlockMap;
442
478
  exports.defineBlock = defineBlock;
443
479
  exports.resolveBlockData = resolveBlockData;
480
+ exports.resolveLayoutBlockData = resolveLayoutBlockData;
package/dist/index.d.cts CHANGED
@@ -42,6 +42,17 @@ interface ResolveBlockDataOptions {
42
42
  isPreview?: boolean;
43
43
  }
44
44
  declare function resolveBlockData({ page, blocks, locale, defaultLocale, enabledLocales, forms, isPreview, }: ResolveBlockDataOptions): Promise<Record<string, unknown>>;
45
+ interface ResolveLayoutBlockDataOptions {
46
+ groups: CmssyLayoutGroup[];
47
+ blocks: BlockDefinition[];
48
+ position: string;
49
+ locale: string;
50
+ defaultLocale: string;
51
+ enabledLocales?: string[];
52
+ forms?: Record<string, CmssyFormDefinition>;
53
+ isPreview?: boolean;
54
+ }
55
+ declare function resolveLayoutBlockData({ groups, blocks, position, locale, defaultLocale, enabledLocales, forms, isPreview, }: ResolveLayoutBlockDataOptions): Promise<Record<string, unknown>>;
45
56
 
46
57
  interface CmssyServerLayoutProps {
47
58
  groups: CmssyLayoutGroup[];
@@ -85,4 +96,4 @@ interface UnknownBlockProps {
85
96
  }
86
97
  declare function UnknownBlock({ type }: UnknownBlockProps): react_jsx_runtime.JSX.Element;
87
98
 
88
- export { BlockDefinition, BlockMap, CmssyBlock, type CmssyBlockProps, CmssyServerLayout, type CmssyServerLayoutProps, CmssyServerPage, type CmssyServerPageProps, type ResolveBlockDataOptions, UnknownBlock, type UnknownBlockProps, resolveBlockData };
99
+ export { BlockDefinition, BlockMap, CmssyBlock, type CmssyBlockProps, CmssyServerLayout, type CmssyServerLayoutProps, CmssyServerPage, type CmssyServerPageProps, type ResolveBlockDataOptions, type ResolveLayoutBlockDataOptions, UnknownBlock, type UnknownBlockProps, resolveBlockData, resolveLayoutBlockData };
package/dist/index.d.ts CHANGED
@@ -42,6 +42,17 @@ interface ResolveBlockDataOptions {
42
42
  isPreview?: boolean;
43
43
  }
44
44
  declare function resolveBlockData({ page, blocks, locale, defaultLocale, enabledLocales, forms, isPreview, }: ResolveBlockDataOptions): Promise<Record<string, unknown>>;
45
+ interface ResolveLayoutBlockDataOptions {
46
+ groups: CmssyLayoutGroup[];
47
+ blocks: BlockDefinition[];
48
+ position: string;
49
+ locale: string;
50
+ defaultLocale: string;
51
+ enabledLocales?: string[];
52
+ forms?: Record<string, CmssyFormDefinition>;
53
+ isPreview?: boolean;
54
+ }
55
+ declare function resolveLayoutBlockData({ groups, blocks, position, locale, defaultLocale, enabledLocales, forms, isPreview, }: ResolveLayoutBlockDataOptions): Promise<Record<string, unknown>>;
45
56
 
46
57
  interface CmssyServerLayoutProps {
47
58
  groups: CmssyLayoutGroup[];
@@ -85,4 +96,4 @@ interface UnknownBlockProps {
85
96
  }
86
97
  declare function UnknownBlock({ type }: UnknownBlockProps): react_jsx_runtime.JSX.Element;
87
98
 
88
- export { BlockDefinition, BlockMap, CmssyBlock, type CmssyBlockProps, CmssyServerLayout, type CmssyServerLayoutProps, CmssyServerPage, type CmssyServerPageProps, type ResolveBlockDataOptions, UnknownBlock, type UnknownBlockProps, resolveBlockData };
99
+ export { BlockDefinition, BlockMap, CmssyBlock, type CmssyBlockProps, CmssyServerLayout, type CmssyServerLayoutProps, CmssyServerPage, type CmssyServerPageProps, type ResolveBlockDataOptions, type ResolveLayoutBlockDataOptions, UnknownBlock, type UnknownBlockProps, resolveBlockData, resolveLayoutBlockData };
package/dist/index.js CHANGED
@@ -216,6 +216,42 @@ async function resolveBlockData({
216
216
  });
217
217
  return data;
218
218
  }
219
+ async function resolveLayoutBlockData({
220
+ groups,
221
+ blocks,
222
+ position,
223
+ locale,
224
+ defaultLocale,
225
+ enabledLocales,
226
+ forms,
227
+ isPreview = false
228
+ }) {
229
+ const group = groups.find((g) => g.position === position);
230
+ const layoutBlocks = group ? group.blocks.filter((b) => b.isActive).slice().sort((a, b) => a.order - b.order) : [];
231
+ if (layoutBlocks.length === 0) return {};
232
+ const loaderMap = buildLoaderMap(blocks);
233
+ const context = buildBlockContext(
234
+ locale,
235
+ defaultLocale,
236
+ enabledLocales,
237
+ isPreview,
238
+ forms
239
+ );
240
+ const resolved = await resolveBlocks(
241
+ layoutBlocks,
242
+ loaderMap,
243
+ locale,
244
+ defaultLocale,
245
+ context,
246
+ enabledLocales
247
+ );
248
+ const data = {};
249
+ layoutBlocks.forEach((block, index) => {
250
+ const value = resolved[index]?.data;
251
+ if (value !== void 0) data[block.id] = value;
252
+ });
253
+ return data;
254
+ }
219
255
  async function CmssyServerLayout({
220
256
  groups,
221
257
  blocks,
@@ -291,4 +327,4 @@ function CmssyBlock({
291
327
  );
292
328
  }
293
329
 
294
- export { CmssyBlock, CmssyServerLayout, CmssyServerPage, UnknownBlock, blocksToMeta, blocksToSchemas, buildBlockMap, defineBlock, resolveBlockData };
330
+ export { CmssyBlock, CmssyServerLayout, CmssyServerPage, UnknownBlock, blocksToMeta, blocksToSchemas, buildBlockMap, defineBlock, resolveBlockData, resolveLayoutBlockData };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cmssy/react",
3
- "version": "8.0.2",
3
+ "version": "8.0.4",
4
4
  "description": "React blocks, renderers, data client and editor bridge for cmssy headless sites",
5
5
  "keywords": [
6
6
  "cmssy",
@@ -57,7 +57,7 @@
57
57
  },
58
58
  "dependencies": {
59
59
  "@cmssy/types": "0.28.0",
60
- "@cmssy/core": "8.0.2"
60
+ "@cmssy/core": "8.0.4"
61
61
  },
62
62
  "scripts": {
63
63
  "build": "tsup",