@remkoj/optimizely-cms-react 5.0.1 → 5.1.0

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.
@@ -1,11 +1,11 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import type { BaseCmsContentProps } from './types.js';
3
- export type * from "./types.js";
3
+ export type * from './types.js';
4
4
  /**
5
5
  * React Server Side component for the CmsContent
6
6
  *
7
7
  * @param param0
8
8
  * @returns
9
9
  */
10
- export declare function CmsContent<LocalesType = string>({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx }: BaseCmsContentProps<LocalesType>): ReactNode;
10
+ export declare function CmsContent<LocalesType = string>({ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, }: BaseCmsContentProps<LocalesType>): ReactNode;
11
11
  export default CmsContent;
@@ -1,9 +1,9 @@
1
- "use client";
1
+ 'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import getContentType from './get-content-type.js';
4
4
  import getContent from './get-content.js';
5
- import { AuthMode, normalizeContentLink, contentLinkToString } from '@remkoj/optimizely-graph-client';
6
- import resolveComponent, { isComponentMissingComponent } from './resolve-component.js';
5
+ import { AuthMode, normalizeContentLink, contentLinkToString, } from '@remkoj/optimizely-graph-client';
6
+ import resolveComponent, { isComponentMissingComponent, } from './resolve-component.js';
7
7
  import resolveContentType from './resolve-content-type.js';
8
8
  import { useState, useMemo, useEffect } from 'react';
9
9
  /**
@@ -14,18 +14,25 @@ import { useState, useMemo, useEffect } from 'react';
14
14
  */
15
15
  export function CmsContent({
16
16
  // Own properties
17
- contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx }) {
17
+ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentData, layoutProps, noDataLoad, variant, ctx, }) {
18
18
  // Prepare context
19
19
  const graphClient = ctx.client;
20
20
  const [myContentType, setMyContentType] = useState(resolveContentType(contentType, fragmentData));
21
21
  const contentLink = useMemo(() => normalizeContentLink(rawContentLink), [rawContentLink]);
22
22
  const Component = useMemo(() => resolveComponent(myContentType, contentTypePrefix, variant, ctx), [myContentType, variant, contentTypePrefix, ctx]);
23
- const [data, setData] = useState(getContent(graphClient, contentLink, Component, fragmentData, true));
23
+ const [data, setData] = useState(
24
+ //@ts-expect-error
25
+ getContent(graphClient, contentLink, Component, fragmentData, true));
24
26
  // Provide a bit of debugging context
25
27
  if (graphClient?.debug) {
26
- const mode = ctx.inEditMode ? "Edit" : ctx.inPreviewMode ? "Preview" : "Public";
27
- console.log(`👔 [CmsContent] ${mode} mode active for content with id: ${contentLinkToString(contentLink)} of type ${myContentType?.join("/") ?? "unknown"}`);
28
- if ((ctx.inEditMode || ctx.inPreviewMode) && graphClient.currentAuthMode == AuthMode.Public)
28
+ const mode = ctx.inEditMode
29
+ ? 'Edit'
30
+ : ctx.inPreviewMode
31
+ ? 'Preview'
32
+ : 'Public';
33
+ console.log(`👔 [CmsContent] ${mode} mode active for content with id: ${contentLinkToString(contentLink)} of type ${myContentType?.join('/') ?? 'unknown'}`);
34
+ if ((ctx.inEditMode || ctx.inPreviewMode) &&
35
+ graphClient.currentAuthMode == AuthMode.Public)
29
36
  console.warn(`🟠 [CmsContent] ${mode} mode active without an authenticated graphClient, this will cause problems. Make sure the context has an authenticated client.`);
30
37
  }
31
38
  // Ensure we have a content type to work with
@@ -39,7 +46,7 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
39
46
  }
40
47
  if (graphClient.debug)
41
48
  console.warn(`🟠 [CmsContent] No content type provided for content ${contentLinkToString(contentLink)}, this causes an additional GraphQL query to resolve the myContentType`);
42
- getContentType(contentLink, graphClient).then(ct => {
49
+ getContentType(contentLink, graphClient).then((ct) => {
43
50
  if (!isCancelled)
44
51
  setMyContentType(ct);
45
52
  });
@@ -56,7 +63,8 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
56
63
  console.warn(`🔴 [CmsContent] No Optimizely Graph Client present unable to load content type`);
57
64
  return;
58
65
  }
59
- getContent(graphClient, contentLink, Component, fragmentData).then(newData => {
66
+ //@ts-expect-error
67
+ getContent(graphClient, contentLink, Component, fragmentData).then((newData) => {
60
68
  if (!isCancelled)
61
69
  setData(newData);
62
70
  });
@@ -65,8 +73,8 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
65
73
  };
66
74
  }, [graphClient, contentLink, Component, fragmentData, noDataLoad]);
67
75
  if (isComponentMissingComponent(Component))
68
- return _jsx(Component, {});
69
- return _jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, children: children });
76
+ return _jsx(Component, { contentLink: contentLink });
77
+ return (_jsx(Component, { contentLink: contentLink, data: data, inEditMode: ctx.inEditMode, layoutProps: layoutProps, children: children }));
70
78
  }
71
79
  export default CmsContent;
72
80
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/components/cms-content/client.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/components/cms-content/client.tsx"],"names":[],"mappings":"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"}
@@ -2,38 +2,47 @@ import { print } from 'graphql';
2
2
  import { isContentLink, isInlineContentLink, OptiCmsSchema } from "@remkoj/optimizely-graph-client";
3
3
  import { CmsContentFragments } from "../../data/queries.js";
4
4
  import { validatesFragment, contentLinkToRequestVariables, isCmsComponentWithFragment, isCmsComponentWithDataQuery } from "../../utilities.js";
5
+ import { getComponentLabel } from './resolve-component.js';
5
6
  export function getContent(client, contentLink, Component, fragmentData, noDataLoad) {
6
7
  const debug = client?.debug ?? false;
7
8
  // Handle provided fragment
8
- const componentLabel = Component?.displayName ?? Component?.toString() ?? 'undefined';
9
- const myFragmentData = fragmentData || {};
10
- const fragmentProps = Object.getOwnPropertyNames(myFragmentData).filter(x => !CmsContentFragments.IContentDataProps.includes(x));
11
- if (fragmentProps.length > 0) {
12
- if (validatesFragment(Component) && !Component.validateFragment(myFragmentData))
13
- console.warn("🔴 [CmsContent][getContent] Invalid fragment data received, falling back to loading for ", componentLabel);
9
+ const componentLabel = getComponentLabel(Component);
10
+ const fragmentProps = fragmentData ? Object.getOwnPropertyNames(fragmentData).filter(x => !CmsContentFragments.IContentDataProps.includes(x)) : [];
11
+ if (fragmentData && fragmentProps.length > 0) {
12
+ // Invalid fragment
13
+ if (validatesFragment(Component) && !Component.validateFragment(fragmentData)) {
14
+ if (debug)
15
+ console.warn("🔴 [CmsContent][getContent] Invalid fragment data received, falling back to loading for ", componentLabel);
16
+ // Preview mode, so load data for changeset
17
+ }
18
+ else if (client?.isPreviewEnabled() && isContentLink(contentLink) && !isInlineContentLink(contentLink)) {
19
+ if (debug)
20
+ console.warn("🔴 [CmsContent][getContent] Rendering shared instance, while in preview mode, falling back to loading for ", componentLabel);
21
+ contentLink.version = null;
22
+ // Default mode, use fragment
23
+ }
14
24
  else {
15
25
  if (debug)
16
- console.log("⚪ [CmsContent][getContent] Rendering CMS Component using fragment information");
17
- return (noDataLoad ? myFragmentData : Promise.resolve(myFragmentData));
26
+ console.log("⚪ [CmsContent][getContent] Rendering CMS Component using fragment information", fragmentProps);
27
+ return (noDataLoad ? fragmentData : Promise.resolve(fragmentData));
18
28
  }
19
29
  }
20
30
  // No meaningful fragment provided with inline content, warn in debug, but just return an empty dataset
21
31
  if (isInlineContentLink(contentLink)) {
22
32
  if (debug)
23
33
  console.warn(`🟠 [CmsContent][getContent] No data present for inline content item, this may cause errors if your component expects certain fields to be present`);
24
- return (noDataLoad ? myFragmentData : Promise.resolve(myFragmentData));
34
+ return (noDataLoad ? fragmentData ?? {} : Promise.resolve(fragmentData ?? {}));
25
35
  }
26
- // If no data may be loaded, stop here
27
36
  if (noDataLoad) {
28
37
  if (debug)
29
38
  console.log(`⚪ [CmsContent][getContent] Component of type "${componentLabel}" was prohibited to load data`);
30
- return myFragmentData;
39
+ return (noDataLoad ? {} : Promise.resolve({}));
31
40
  }
32
41
  // If we don't have a valid link, stop here
33
42
  if (!isContentLink(contentLink)) {
34
43
  if (debug)
35
44
  console.warn(`🟠 [CmsContent][getContent] Unable to load data for "${componentLabel}" without a valid content link`);
36
- return Promise.resolve(myFragmentData);
45
+ return Promise.resolve({});
37
46
  }
38
47
  // Return immediately when there's no client
39
48
  if (!client) {
@@ -45,6 +54,9 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
45
54
  if (isCmsComponentWithDataQuery(Component)) {
46
55
  const gqlQuery = Component.getDataQuery();
47
56
  const gqlVariables = contentLinkToRequestVariables(contentLink);
57
+ // If the CMS Preview mode has been enabled, make sure we include that in the query
58
+ if (client.isPreviewEnabled())
59
+ gqlVariables.changeset = client.getChangeset();
48
60
  if (client.debug)
49
61
  console.log("⚪ [CmsContent][getContent] Component fetching data using query, provided variables:", gqlVariables);
50
62
  return client.request(gqlQuery, gqlVariables);
@@ -52,29 +64,21 @@ export function getContent(client, contentLink, Component, fragmentData, noDataL
52
64
  // Assume there's no data load required for the component
53
65
  if (client.debug)
54
66
  console.log(`⚪ [CmsContent] Component of type "${componentLabel}" did not request loading of data`);
55
- return Promise.resolve(myFragmentData);
67
+ return Promise.resolve({});
56
68
  }
57
69
  export default getContent;
58
70
  async function getComponentDataFromFragment(Component, contentLink, client) {
59
71
  const [name, fragment] = Component.getDataFragment();
60
72
  if (client.debug)
61
73
  console.log(`⚪ [CmsContent] Component data fetching using fragment: ${name}`);
62
- const fragmentQuery = client.currentOptiCmsSchema == OptiCmsSchema.CMS12 ?
63
- `query getContentFragmentById($key: String!, $version: Int, $locale: [Locales!]) { contentById: Content(where: { ContentLink: { GuidValue: { eq: $key }, WorkId: { eq: $version } } }, locale: $locale) { total, items { _type: __typename, _metadata: ContentLink { key: GuidValue, version: WorkId }, _locale: Language { name: Name } ...${name} }}}\n ${print(fragment)}` :
64
- `query getContentFragmentById($key: String!, $version: String, $locale: [Locales!]) {contentById: _Content(where: {_metadata: {key: { eq: $key }, version: { eq: $version }}} locale: $locale) { total, items { _type: __typename, _metadata { key, version, locale } ...${name} }}}\n ${print(fragment)}`;
74
+ const fragmentQuery = client.currentOptiCmsSchema == OptiCmsSchema.CMS12 ? buildCms12Query(name, fragment) : buildCms13Query(name, fragment);
65
75
  const fragmentVariables = contentLinkToRequestVariables(contentLink);
66
- if (client.currentOptiCmsSchema == OptiCmsSchema.CMS12) {
67
- try {
68
- const versionNr = fragmentVariables.version ? Number.parseInt(fragmentVariables.version) : 0;
69
- if (versionNr > 0)
70
- fragmentVariables.version = versionNr;
71
- else
72
- fragmentVariables.version = undefined;
73
- }
74
- catch {
75
- fragmentVariables.version = undefined;
76
- }
77
- }
76
+ // CMS 12 Requires the version number to be an Int
77
+ if (client.currentOptiCmsSchema == OptiCmsSchema.CMS12)
78
+ fragmentVariables.version = tryParsePositiveInt(fragmentVariables.version);
79
+ // If the CMS Preview mode has been enabled, make sure we include that in the query
80
+ if (client.isPreviewEnabled())
81
+ fragmentVariables.changeset = client.getChangeset();
78
82
  if (client.debug)
79
83
  console.log(`⚪ [CmsContent] Component data fetching using variables: ${JSON.stringify(fragmentVariables)}`);
80
84
  const fragmentResponse = await client.request(fragmentQuery, fragmentVariables);
@@ -90,4 +94,37 @@ async function getComponentDataFromFragment(Component, contentLink, client) {
90
94
  }
91
95
  return fragmentResponse.contentById.items[0];
92
96
  }
97
+ function tryParsePositiveInt(value, defaultValue) {
98
+ try {
99
+ const versionNr = value ? Number.parseInt(value) : 0;
100
+ if (!isNaN(versionNr) && versionNr > 0)
101
+ return versionNr;
102
+ }
103
+ catch {
104
+ // Ignore
105
+ }
106
+ return defaultValue;
107
+ }
108
+ const buildCms12Query = (name, fragment) => `query getContentFragmentById($key: String!, $version: Int, $locale: [Locales!]) { contentById: Content(where: { ContentLink: { GuidValue: { eq: $key }, WorkId: { eq: $version } } }, locale: $locale) { total, items { _type: __typename, _metadata: ContentLink { key: GuidValue, version: WorkId }, _locale: Language { name: Name } ...${name} }}}\n${typeof (fragment) == 'string' ? fragment : print(fragment)}`;
109
+ const buildCms13Query = (name, fragment) => `query getContentFragmentById($key: String!, $version: String, $locale: [Locales!], $changeset: String) {
110
+ contentById: _Content(
111
+ where: {
112
+ _metadata: { key: { eq: $key }, version: { eq: $version }, changeset: { eq: $changeset } }
113
+ }
114
+ locale: $locale
115
+ ) {
116
+ total
117
+ items {
118
+ _type: __typename
119
+ __typename
120
+ _metadata {
121
+ key
122
+ version
123
+ locale
124
+ }
125
+ ...${name}
126
+ }
127
+ }
128
+ }
129
+ ${typeof (fragment) == 'string' ? fragment : print(fragment)}`;
93
130
  //# sourceMappingURL=get-content.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-content.js","sourceRoot":"","sources":["../../../src/components/cms-content/get-content.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import { type ComponentTypeHandle } from '../../factory/types.js';
2
2
  import { type EnhancedCmsComponent } from './types.js';
3
3
  import { type GenericContext } from '../../context/types.js';
4
4
  import { type FunctionComponent, type PropsWithChildren, type ComponentType } from 'react';
5
+ import { type ContentLink } from '@remkoj/optimizely-graph-client';
6
+ export declare function getComponentLabel(componentInstance?: ComponentType | null): string;
5
7
  /**
6
8
  * Helper function to safely resolve a component from the ContentType information to
7
9
  *
@@ -12,7 +14,9 @@ import { type FunctionComponent, type PropsWithChildren, type ComponentType } fr
12
14
  */
13
15
  export declare function resolveComponent(contentType: ComponentTypeHandle | null | undefined, prefix: string | null | undefined, variant: string | null | undefined, ctx: GenericContext): EnhancedCmsComponent | ComponentMissingComponent;
14
16
  export default resolveComponent;
15
- export type ComponentMissingComponent = FunctionComponent<PropsWithChildren> & {
17
+ export type ComponentMissingComponent = FunctionComponent<PropsWithChildren<{
18
+ contentLink?: ContentLink;
19
+ }>> & {
16
20
  displayName: 'Opti::ComponentMissing';
17
21
  };
18
22
  export declare function isComponentMissingComponent(toTest: ComponentType<any> | null | undefined): toTest is ComponentMissingComponent;
@@ -1,5 +1,14 @@
1
1
  import { jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import * as Utils from '../../utilities.js';
3
+ export function getComponentLabel(componentInstance) {
4
+ if (!componentInstance)
5
+ return 'n/a';
6
+ if (componentInstance.displayName)
7
+ return componentInstance.displayName;
8
+ if (typeof componentInstance == 'function' && componentInstance.name)
9
+ return componentInstance.name;
10
+ return componentInstance.toString();
11
+ }
3
12
  /**
4
13
  * Helper function to safely resolve a component from the ContentType information to
5
14
  *
@@ -34,8 +43,10 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
34
43
  const contentTypeDisplay = Array.isArray(myContentType)
35
44
  ? myContentType.join('/')
36
45
  : myContentType;
46
+ if (isDebug)
47
+ console.warn(`🟠 [CmsContent] Component of type "${contentTypeDisplay}" not resolved by factory`);
37
48
  if (isDebug || inEditMode) {
38
- const ErrorComponent = (props) => (_jsxs(_Fragment, { children: [_jsxs("div", { className: "opti-error", children: ["Component of type \"", contentTypeDisplay, "\" not resolved by factory"] }), props.children] }));
49
+ const ErrorComponent = ({ children, contentLink, }) => (_jsxs(_Fragment, { children: [_jsxs("div", { className: "opti-error", children: ["Component of type \"", contentTypeDisplay, "\" not resolved by factory for", ' ', contentLink?.key ?? '', " version ", contentLink?.version ?? ''] }), children] }));
39
50
  ErrorComponent.displayName = 'Opti::ComponentMissing';
40
51
  return ErrorComponent;
41
52
  }
@@ -44,6 +55,8 @@ export function resolveComponent(contentType, prefix, variant, ctx) {
44
55
  return ErrorComponent;
45
56
  }
46
57
  // Return the component
58
+ if (isDebug)
59
+ console.log('⚪ [CmsContent] Rendering item using component:', getComponentLabel(Component));
47
60
  return Component;
48
61
  }
49
62
  export default resolveComponent;
@@ -1 +1 @@
1
- {"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAQ3C;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmD,EACnD,MAAiC,EACjC,OAAkC,EAClC,GAAmB;IAEnB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAA;IAE5C,sFAAsF;IACtF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,qFAAqF,CACtF,CAAA;QACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,gKAAgK;IAChK,MAAM,aAAa,GAAG,MAAM;QAC1B,CAAC,CAAC,KAAK,CAAC,6BAA6B,CACjC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,MAAM,CACP;QACH,CAAC,CAAC,KAAK,CAAC,oBAAoB,CACxB,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,EACrE,IAAI,CACL,CAAA;IAEL,mEAAmE;IACnE,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QAChD,IAAI,OAAO;YACT,OAAO,CAAC,KAAK,CACX,sDAAsD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC5J,CAAA;QACH,MAAM,IAAI,KAAK,CACb,oBAAoB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,mCAAmC,CAC1H,CAAA;IACH,CAAC;IAED,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,CACT,4DAA4D,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,aAAa,EAAE,CAC9G,CAAA;IAEH,oBAAoB;IACpB,MAAM,SAAS,GAAG,KAAK,CAAC,oBAAoB,CAC1C,OAAO,EACP,aAAa,EACb,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CACW,CAAA;IAErC,wCAAwC;IACxC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;YACzB,CAAC,CAAC,aAAa,CAAA;QACjB,IAAI,OAAO,IAAI,UAAU,EAAE,CAAC;YAC1B,MAAM,cAAc,GAA8B,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3D,8BACE,eAAK,SAAS,EAAC,YAAY,qCACL,kBAAkB,kCAClC,EACL,KAAK,CAAC,QAAQ,IACd,CACJ,CAAA;YACD,cAAc,CAAC,WAAW,GAAG,wBAAwB,CAAA;YACrD,OAAO,cAAc,CAAA;QACvB,CAAC;QACD,MAAM,cAAc,GAA8B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAA;QAC3E,cAAc,CAAC,WAAW,GAAG,wBAAwB,CAAA;QACrD,OAAO,cAAc,CAAA;IACvB,CAAC;IAED,uBAAuB;IACvB,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,eAAe,gBAAgB,CAAA;AAM/B,MAAM,UAAU,2BAA2B,CACzC,MAA6C;IAE7C,OAAO,MAAM,EAAE,WAAW,IAAI,wBAAwB,CAAA;AACxD,CAAC"}
1
+ {"version":3,"file":"resolve-component.js","sourceRoot":"","sources":["../../../src/components/cms-content/resolve-component.tsx"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ contentType, contentTypePrefix, contentLink: rawContentLink, children, fragmentD
47
47
  // Retrieve the Component used to render this item
48
48
  const Component = resolveComponent(myContentType, contentTypePrefix, variant, ctx);
49
49
  if (isComponentMissingComponent(Component))
50
- return _jsx(Component, {});
50
+ return _jsx(Component, { contentLink: contentLink });
51
51
  // Ensure we have the data the Component requested
52
52
  const data = await getContent(graphClient, contentLink, Component, fragmentData, noDataLoad);
53
53
  // Output the actual component
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,QAAQ,EACR,oBAAoB,GAGrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,gBAAgB,EAAE,EACvB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAI1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAuB;AACrD,iBAAiB;AACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EAAE,cAAc,EAC3B,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,GAC8B;IACjC,kBAAkB;IAClB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;IAE9B,4BAA4B;IAC5B,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAExD,iCAAiC;IACjC,IAAI,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,kFAAkF,CACnF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,uEAAuE,CACxE,CAAA;YACD,OAAM;QACR,CAAC;QACD,aAAa,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU;YACzB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,CAAC,aAAa;gBACjB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,CAAA;QACd;;WAEG;QACH,IACE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,CAAC;YACrC,WAAW,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM;YAE9C,OAAO,CAAC,IAAI,CACV,mBAAmB,IAAI,iIAAiI,CACzJ,CAAA;IACL,CAAC;IAED,kDAAkD;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAChC,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,GAAG,CACJ,CAAA;IACD,IAAI,2BAA2B,CAAC,SAAS,CAAC;QAAE,OAAO,KAAC,SAAS,KAAG,CAAA;IAEhE,kDAAkD;IAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,CACX,CAAA;IAED,8BAA8B;IAC9B,OAAO,CACL,KAAC,SAAS,IACR,WAAW,EAAE,WAA0B,EACvC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,YAEP,QAAQ,GACC,CACb,CAAA;AACH,CAAC;AAED,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../../src/components/cms-content/rsc.tsx"],"names":[],"mappings":";AAEA,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,QAAQ,EACR,oBAAoB,GAGrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,gBAAgB,EAAE,EACvB,2BAA2B,GAC5B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,kBAAkB,MAAM,2BAA2B,CAAA;AAI1D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAuB;AACrD,iBAAiB;AACjB,WAAW,EACX,iBAAiB,EACjB,WAAW,EAAE,cAAc,EAC3B,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,GAC8B;IACjC,kBAAkB;IAClB,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAA;IAE9B,4BAA4B;IAC5B,MAAM,WAAW,GAAG,oBAAoB,CAAC,cAAc,CAAC,CAAA;IAExD,iCAAiC;IACjC,IAAI,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAA;IACjE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,kFAAkF,CACnF,CAAA;YACD,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,uEAAuE,CACxE,CAAA;YACD,OAAM;QACR,CAAC;QACD,aAAa,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,CAAA;IAChE,CAAC;IAED,qCAAqC;IACrC,IAAI,WAAW,EAAE,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU;YACzB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,GAAG,CAAC,aAAa;gBACjB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,CAAA;QACd;;WAEG;QACH,IACE,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,aAAa,CAAC;YACrC,WAAW,CAAC,eAAe,IAAI,QAAQ,CAAC,MAAM;YAE9C,OAAO,CAAC,IAAI,CACV,mBAAmB,IAAI,iIAAiI,CACzJ,CAAA;IACL,CAAC;IAED,kDAAkD;IAClD,MAAM,SAAS,GAAG,gBAAgB,CAChC,aAAa,EACb,iBAAiB,EACjB,OAAO,EACP,GAAG,CACJ,CAAA;IACD,IAAI,2BAA2B,CAAC,SAAS,CAAC;QACxC,OAAO,KAAC,SAAS,IAAC,WAAW,EAAE,WAA0B,GAAI,CAAA;IAE/D,kDAAkD;IAClD,MAAM,IAAI,GAAG,MAAM,UAAU,CAC3B,WAAW,EACX,WAAW,EACX,SAAS,EACT,YAAY,EACZ,UAAU,CACX,CAAA;IAED,8BAA8B;IAC9B,OAAO,CACL,KAAC,SAAS,IACR,WAAW,EAAE,WAA0B,EACvC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,GAAG,CAAC,UAAU,EAC1B,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,YAEP,QAAQ,GACC,CACb,CAAA;AACH,CAAC;AAED,eAAe,UAAU,CAAA"}
@@ -1,3 +1,3 @@
1
- import { type ComponentType } from "react";
2
- import { type CmsContentComponent, type PropsWithCmsContent } from "./types.js";
1
+ import { type ComponentType } from 'react';
2
+ import { type CmsContentComponent, type PropsWithCmsContent } from './types.js';
3
3
  export declare function cmsContentAware<P = any>(component: ComponentType<PropsWithCmsContent<P>>, cmsContentComponent: CmsContentComponent): ComponentType<P>;
@@ -1,6 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  export function cmsContentAware(component, cmsContentComponent) {
3
3
  const BaseComponent = component;
4
- return (props) => _jsx(BaseComponent, { cmsContent: cmsContentComponent, ...props });
4
+ return (props) => (_jsx(BaseComponent, { cmsContent: cmsContentComponent, ...props }));
5
5
  }
6
6
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/cms-content/utils.tsx"],"names":[],"mappings":";AAGA,MAAM,UAAU,eAAe,CAAU,SAAgD,EAAE,mBAAwC;IAE/H,MAAM,aAAa,GAAG,SAAS,CAAA;IAC/B,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,KAAC,aAAa,IAAC,UAAU,EAAE,mBAAmB,KAAO,KAAK,GAAK,CAAA;AACxF,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/cms-content/utils.tsx"],"names":[],"mappings":";AAGA,MAAM,UAAU,eAAe,CAC7B,SAAgD,EAChD,mBAAwC;IAExC,MAAM,aAAa,GAAG,SAAS,CAAA;IAC/B,OAAO,CAAC,KAAQ,EAAE,EAAE,CAAC,CACnB,KAAC,aAAa,IAAC,UAAU,EAAE,mBAAmB,KAAM,KAAK,GAAI,CAC9D,CAAA;AACH,CAAC"}
@@ -23,6 +23,16 @@ export declare function createHtmlComponent<E extends keyof JSX.IntrinsicElement
23
23
  export declare const DefaultTextNode: FunctionComponent<PropsWithOptionalContext<{
24
24
  node: TextNode;
25
25
  }>>;
26
+ /**
27
+ * Default component for Rich Text elements that should not be part of the HTML fragment
28
+ * and should not be rendered if they are.
29
+ *
30
+ * @param param0 The component parameters
31
+ * @returns The children, if any
32
+ */
33
+ export declare const DefaultNoRenderNode: FunctionComponent<PropsWithOptionalContext<PropsWithChildren<{
34
+ node: TypedNode;
35
+ }>>>;
26
36
  /**
27
37
  * A default component dictionary that allows to serialize the structured HTML
28
38
  * into React, using the component library shared across the react SDK.
@@ -60,6 +60,19 @@ export const DefaultTextNode = ({ ctx, node }) => {
60
60
  console.warn('🟠 [Rich Text] Text node with unsupported additional properties:', unsupportedProps.join(', '));
61
61
  return decodeHTML(node.text);
62
62
  };
63
+ /**
64
+ * Default component for Rich Text elements that should not be part of the HTML fragment
65
+ * and should not be rendered if they are.
66
+ *
67
+ * @param param0 The component parameters
68
+ * @returns The children, if any
69
+ */
70
+ export const DefaultNoRenderNode = ({ children, ctx, node }) => {
71
+ if (ctx?.isDebugOrDevelopment) {
72
+ console.warn(`🟠 [Rich Text] Not rendering ${node.type} to prevent React/JSX errors`);
73
+ }
74
+ return children;
75
+ };
63
76
  /**
64
77
  * A default component dictionary that allows to serialize the structured HTML
65
78
  * into React, using the component library shared across the react SDK.
@@ -73,6 +86,12 @@ export const DefaultComponents = [
73
86
  }),
74
87
  },
75
88
  { type: 'RichText/text', component: DefaultTextNode },
89
+ // Catch elements that should not be in the content
90
+ { type: 'RichText/html', component: DefaultNoRenderNode },
91
+ { type: 'RichText/head', component: DefaultNoRenderNode },
92
+ { type: 'RichText/meta', component: DefaultNoRenderNode },
93
+ { type: 'RichText/title', component: DefaultNoRenderNode },
94
+ { type: 'RichText/body', component: DefaultNoRenderNode },
76
95
  // Aliased tags
77
96
  { type: 'RichText/paragraph', component: createHtmlComponent('p') },
78
97
  { type: 'RichText/heading-one', component: createHtmlComponent('h1') },
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/components/rich-text/components.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"components.js","sourceRoot":"","sources":["../../../src/components/rich-text/components.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { type FunctionComponent } from 'react';
2
- import type { RichTextProps } from './types.js';
3
- import { type PropsWithContext } from '../../context/types.js';
1
+ import type { RichTextImplProps } from './types.js';
2
+ import type { ElementWithChildrenType } from '../type-utils.js';
4
3
  export * from './types.js';
5
- export declare const RichText: FunctionComponent<PropsWithContext<RichTextProps>>;
4
+ export declare const RichText: <ET extends ElementWithChildrenType>({ factory, text, className, as: Wrapper, debug, noWrapper, cmsFieldName, cmsId, ctx, children, ...props }: RichTextImplProps<ET>) => import("react/jsx-runtime").JSX.Element;
@@ -4,27 +4,33 @@ import { DefaultComponentFactory } from '../../factory/default.js';
4
4
  import { DefaultComponents, DefaultTextNode, createHtmlComponent, } from './components.js';
5
5
  import { CmsEditable } from '../cms-editable/index.js';
6
6
  export * from './types.js';
7
- export const RichText = ({ factory, text = '{ "type": "richText" }', className = 'rich-text', as: Wrapper = 'div', debug = false, noWrapper = false, cmsFieldName = null, cmsId = null, ctx, ...props }) => {
7
+ export const RichText = ({ factory, text = '{ "type": "richText" }', className = 'rich-text', as: Wrapper = 'div', debug = false, noWrapper = false, cmsFieldName = null, cmsId = null, ctx, children, ...props }) => {
8
8
  const id = Utils.getRandomId('rich-text');
9
9
  const richTextFactory = ctx.factory ?? factory ?? new DefaultComponentFactory(DefaultComponents);
10
+ const isDebug = ctx.isDebug || debug;
10
11
  try {
11
12
  const data = Utils.processNodeInput(text);
12
- const textContent = (data?.children || []).map((child, idx) => {
13
+ const textContent = data?.children?.map((child, idx) => {
13
14
  const elementId = id + '::' + idx;
14
15
  return (_jsx(RichTextElement, { factory: richTextFactory, node: child, idPrefix: elementId + '::', ctx: ctx }, elementId));
15
- });
16
- if (noWrapper)
16
+ }) || children;
17
+ if (cmsId || cmsFieldName)
18
+ return (_jsx(CmsEditable, { as: (Wrapper ?? 'div'), className: className, cmsId: cmsId || undefined, cmsFieldName: cmsFieldName || undefined, ctx: ctx, ...props, children: textContent }));
19
+ if (noWrapper || !Wrapper)
17
20
  return _jsx(_Fragment, { children: textContent });
18
- return (_jsx(CmsEditable, { as: Wrapper, className: className, cmsId: cmsId || undefined, cmsFieldName: cmsFieldName || undefined, ctx: ctx, ...props, children: textContent }));
21
+ return (
22
+ //@ts-expect-error
23
+ _jsx(Wrapper, { className: className, ...props, children: textContent }));
19
24
  }
20
25
  catch {
21
- if (debug)
26
+ if (isDebug)
22
27
  console.warn('🟠 [Rich Text] Invalid rich text received: ', text);
23
- return Object.getOwnPropertyNames(props).length > 0 ? (_jsx("div", { className: className, ...props })) : null;
28
+ return Object.getOwnPropertyNames(props).length > 0 ? (_jsx("div", { className: className, ...props, children: children })) : (_jsx(_Fragment, { children: children }));
24
29
  }
25
30
  };
26
31
  //#region Supportive React components
27
32
  const RichTextElement = ({ factory, node, idPrefix, debug, ctx }) => {
33
+ const isDebug = ctx.isDebug || debug;
28
34
  // Render text
29
35
  if (Utils.isText(node)) {
30
36
  if (node.text.length == 0)
@@ -34,7 +40,7 @@ const RichTextElement = ({ factory, node, idPrefix, debug, ctx }) => {
34
40
  }
35
41
  // Ignore incorrect data
36
42
  if (!Utils.isTypedNode(node)) {
37
- if (debug)
43
+ if (isDebug)
38
44
  console.warn('🟠 [Rich Text] Invalid rich text element data received:', node);
39
45
  return null;
40
46
  }
@@ -48,7 +54,7 @@ const RichTextElement = ({ factory, node, idPrefix, debug, ctx }) => {
48
54
  // Resolve component (and add to factory if not yet present)
49
55
  let Component = factory?.resolve(`RichText/${node.type}`);
50
56
  if (!Component) {
51
- if (debug)
57
+ if (isDebug)
52
58
  console.warn(`🟠 [Rich Text] No renderer for node type, using and registering HtmlComponent for "${node.type}": RichText/${node.type}`);
53
59
  Component = createHtmlComponent(node.type);
54
60
  factory?.register(`RichText/${node.type}`, Component);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/rich-text/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/rich-text/index.tsx"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { ComponentType as ReactComponentType } from "react";
1
+ import type { FunctionComponent } from "react";
2
2
  import type { ComponentFactory } from "../../factory/types.js";
3
- import type { PropsWithOptionalContext } from "../../context/types.js";
4
- import type { ElementType } from "../type-utils.js";
5
- export type RichTextProps = {
3
+ import type { PropsWithOptionalContext, PropsWithContext } from "../../context/types.js";
4
+ import type { ElementProps, ElementWithChildrenType } from "../type-utils.js";
5
+ export type RichTextProps<ET extends ElementWithChildrenType> = {
6
6
  /**
7
7
  * The component factory used for this rich text content
8
8
  *
@@ -22,9 +22,11 @@ export type RichTextProps = {
22
22
  * Set the component type of the wrapper to use, defaults to a 'div'
23
23
  * element when not defined
24
24
  */
25
- as?: ElementType;
25
+ as?: ET | null;
26
26
  /**
27
27
  * Control the debugging output
28
+ *
29
+ * @deprecated The debug value from the context will be used
28
30
  */
29
31
  debug?: boolean;
30
32
  /**
@@ -41,7 +43,8 @@ export type RichTextProps = {
41
43
  */
42
44
  cmsId?: string | null;
43
45
  };
44
- export type RichTextComponent = ReactComponentType<PropsWithOptionalContext<RichTextProps>>;
46
+ export type RichTextComponent = <ET extends ElementWithChildrenType>(props: PropsWithOptionalContext<RichTextProps<ET>>) => ReturnType<FunctionComponent>;
47
+ export type RichTextImplProps<ET extends ElementWithChildrenType> = PropsWithContext<RichTextProps<ET> & Omit<ElementProps<ET>, keyof RichTextProps<ET>>>;
45
48
  export type RichTextElementProps = Readonly<{
46
49
  debug?: boolean;
47
50
  factory?: ComponentFactory;
@@ -1,4 +1,23 @@
1
- import { GenericContext } from "../rsc.js";
1
+ import type { GenericContext } from "../rsc.js";
2
+ import type { PropsWithChildren } from "react";
3
+ /**
4
+ * Define an element as a React Component, React ExoticComponent or string name
5
+ * representing a HTML Element (e.g. "div", "a", etc...), this value can be used
6
+ * as first argument of React.createElement()
7
+ */
8
+ export type ElementType = (React.ComponentType<any>) | (React.ExoticComponent<any>) | (keyof JSX.IntrinsicElements);
9
+ /**
10
+ * Define an element as a React Component, React ExoticComponent or string name
11
+ * representing a HTML Element (e.g. "div", "a", etc...), this value can be used
12
+ * as first argument of React.createElement()
13
+ *
14
+ * The type must support children
15
+ */
16
+ export type ElementWithChildrenType = React.ComponentType<PropsWithChildren> | React.ExoticComponent<PropsWithChildren> | keyof Omit<JSX.IntrinsicElements, 'meta' | 'img' | 'video' | 'audio'>;
17
+ /**
18
+ * The properties type of an ElementType
19
+ */
20
+ export type ElementProps<T extends ElementType> = T extends keyof JSX.IntrinsicElements ? React.HTMLProps<JSX.IntrinsicElements[T]> : React.ComponentProps<T>;
2
21
  /**
3
22
  * Tests if K is a property of T - if so: it is the type of
4
23
  * T[K]; if not: it is equal to never
@@ -13,10 +32,6 @@ export type TypeIfPropExists<T extends ElementType, K, U> = K extends keyof Elem
13
32
  * Defines the type to be T or an array of T
14
33
  */
15
34
  export type MayBeArray<T> = T | T[];
16
- /**
17
- * The properties type of an ElementType
18
- */
19
- export type ElementProps<T extends ElementType> = T extends keyof JSX.IntrinsicElements ? React.HTMLProps<JSX.IntrinsicElements[T]> : React.ComponentProps<T>;
20
35
  /**
21
36
  * The union of property names of an Element that may receive child elements
22
37
  */
@@ -26,12 +41,6 @@ export type ElementChildrenProps<T extends ElementType> = keyof {
26
41
  export type GenericContextProps<T extends ElementType> = keyof {
27
42
  [P in keyof ElementProps<T> as GenericContext extends ElementProps<T>[P] ? P : never]: ElementProps<T>[P];
28
43
  };
29
- /**
30
- * Define an element as a React Component, React ExoticComponent or string name
31
- * representing a HTML Element (e.g. "div", "a", etc...), this value can be used
32
- * as first argument of React.createElement()
33
- */
34
- export type ElementType = (React.ComponentType<any>) | (React.ExoticComponent<any>) | (keyof JSX.IntrinsicElements);
35
44
  /**
36
45
  * Reserved Element properties that may not be passed to CmsContentArea wrappers, as these are auto-injected
37
46
  */
@@ -47,9 +47,10 @@ export const defaultPropsFactory = (node) => {
47
47
  if (!isContentType(contentType))
48
48
  throw new Error("Invalid content type: " + JSON.stringify(contentType));
49
49
  const contentLink = {
50
- key: node.key || node.component?._metadata?.key || undefined,
50
+ key: node.component?._metadata?.key || node.key || undefined,
51
51
  version: node.component?._metadata?.version,
52
- locale: node.component?._metadata?.locale
52
+ locale: node.component?._metadata?.locale,
53
+ isInline: node.component?._metadata?.key ? false : true
53
54
  };
54
55
  if (!(isContentLink(contentLink) || isInlineContentLink(contentLink)))
55
56
  throw new Error("Invalid content link: " + JSON.stringify(contentLink));
@@ -57,7 +58,7 @@ export const defaultPropsFactory = (node) => {
57
58
  type: node.type,
58
59
  layoutType: node.layoutType,
59
60
  template: node.template,
60
- settings: node.settings
61
+ settings: node.settings,
61
62
  };
62
63
  return [contentLink, contentType, node.component, layoutData];
63
64
  };
@@ -76,8 +77,8 @@ export const defaultNodePropsFactory = (node) => {
76
77
  ["Node", "Content"],
77
78
  ["Node", "Component", "Content"]
78
79
  ].filter(x => x);
79
- const contentLink = { key: node.key ?? '' };
80
- const componentData = {};
80
+ const contentLink = { key: node.key ?? '', isInline: true };
81
+ const componentData = { __name: node.name };
81
82
  const layoutData = {
82
83
  type: node.type,
83
84
  layoutType: node.layoutType,
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  * deprecated, use either `@remkoj/optimizely-cms-react` or
7
7
  * `@remkoj/optimizely-cms-react/rsc`, dependingn on your context
8
8
  */
9
- export declare const RichText: import("react").ComponentType<import("./rsc.js").PropsWithOptionalContext<Omit<import("./rsc.js").PropsWithContext<import("./rsc.js").RichTextProps>, "ctx">>>;
9
+ export declare const RichText: import("react").ComponentType<import("./rsc.js").PropsWithOptionalContext<Omit<import("./components/rich-text/types.js").RichTextImplProps<import("./components/type-utils.js").ElementWithChildrenType>, "ctx">>>;
10
10
  /**
11
11
  * @deprecated The `@remkoj/optimizely-cms-react/components` export has been deprecated
12
12
  */
package/dist/types.d.ts CHANGED
@@ -39,6 +39,7 @@ export type ContentQueryProps<LocaleType = string> = ContentLink & {
39
39
  locale?: Array<LocaleType> | LocaleType | null;
40
40
  path?: string | null;
41
41
  domain?: string | null;
42
+ changeset?: string | null;
42
43
  };
43
44
  /**
44
45
  * Extract the data type from a GraphQL Query
@@ -47,7 +48,7 @@ export type ResponseDataType<T extends DocumentNode> = T extends TypedDocumentNo
47
48
  [key: string]: any;
48
49
  };
49
50
  export type GetDataQuery<T> = () => TypedDocumentNode<T, ContentQueryProps> | DocumentNode;
50
- export type GetDataFragment<T> = () => [string, TypedDocumentNode<T, never> | DocumentNode];
51
+ export type GetDataFragment<T> = () => [string, TypedDocumentNode<T, never> | DocumentNode | string];
51
52
  export type WithGqlFragment<BaseComponent, DataType> = BaseComponent & {
52
53
  getDataFragment: GetDataFragment<DataType>;
53
54
  validateFragment?: (data: any) => data is DataType;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@remkoj/optimizely-cms-react",
3
3
  "license": "Apache-2.0",
4
- "version": "5.0.1",
4
+ "version": "5.1.0",
5
5
  "repository": "https://github.com/remkoj/optimizely-dxp-clients.git",
6
6
  "author": "Remko Jantzen <693172+remkoj@users.noreply.github.com>",
7
7
  "homepage": "https://github.com/remkoj/optimizely-dxp-clients/tree/main/packages/optimizely-cms-react",
@@ -27,18 +27,18 @@
27
27
  }
28
28
  },
29
29
  "devDependencies": {
30
- "@remkoj/optimizely-graph-client": "5.0.1",
30
+ "@remkoj/optimizely-graph-client": "5.1.0",
31
31
  "@types/crypto-js": "^4.2.2",
32
- "@types/node": "^22.14.1",
33
- "@types/react": "^18.3.20",
34
- "@types/react-dom": "18.3.6",
35
- "entities": "^6.0.0",
36
- "graphql": "^16.10.0",
32
+ "@types/node": "^22.16.0",
33
+ "@types/react": "^18.3.23",
34
+ "@types/react-dom": "18.3.7",
35
+ "entities": "^6.0.1",
36
+ "graphql": "^16.11.0",
37
37
  "graphql-request": "^6.1.0",
38
38
  "prop-types": "^15.8.1",
39
39
  "react": "^18.3.1",
40
40
  "react-dom": "^18.3.1",
41
- "scheduler": "^0.25.0",
41
+ "scheduler": "^0.26.0",
42
42
  "typescript": "^5.8.3"
43
43
  },
44
44
  "dependencies": {