@remkoj/optimizely-cms-react 5.0.2 → 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.
- package/dist/components/cms-content/client.d.ts +2 -2
- package/dist/components/cms-content/client.js +20 -12
- package/dist/components/cms-content/client.js.map +1 -1
- package/dist/components/cms-content/get-content.js +65 -28
- package/dist/components/cms-content/get-content.js.map +1 -1
- package/dist/components/cms-content/resolve-component.d.ts +5 -1
- package/dist/components/cms-content/resolve-component.js +14 -1
- package/dist/components/cms-content/resolve-component.js.map +1 -1
- package/dist/components/cms-content/rsc.js +1 -1
- package/dist/components/cms-content/rsc.js.map +1 -1
- package/dist/components/cms-content/utils.d.ts +2 -2
- package/dist/components/cms-content/utils.js +1 -1
- package/dist/components/cms-content/utils.js.map +1 -1
- package/dist/components/visual-builder/functions.js +6 -5
- package/dist/components/visual-builder/functions.js.map +1 -1
- package/dist/types.d.ts +2 -1
- package/package.json +6 -6
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type ReactNode } from 'react';
|
|
2
2
|
import type { BaseCmsContentProps } from './types.js';
|
|
3
|
-
export type * from
|
|
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
|
-
|
|
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(
|
|
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
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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":"AAAA,YAAY,CAAA;;AAIZ,OAAO,cAAc,MAAM,uBAAuB,CAAA;AAClD,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,
|
|
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
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
if (validatesFragment(Component) && !Component.validateFragment(
|
|
13
|
-
|
|
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 ?
|
|
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 ?
|
|
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
|
|
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(
|
|
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(
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
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":"AAAA,OAAO,
|
|
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 = (
|
|
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;
|
|
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;
|
|
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
|
|
2
|
-
import { type CmsContentComponent, type PropsWithCmsContent } from
|
|
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,
|
|
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"}
|
|
@@ -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.
|
|
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":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAyB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
|
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
|
|
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
|
|
30
|
+
"@remkoj/optimizely-graph-client": "5.1.0",
|
|
31
31
|
"@types/crypto-js": "^4.2.2",
|
|
32
|
-
"@types/node": "^22.
|
|
33
|
-
"@types/react": "^18.3.
|
|
32
|
+
"@types/node": "^22.16.0",
|
|
33
|
+
"@types/react": "^18.3.23",
|
|
34
34
|
"@types/react-dom": "18.3.7",
|
|
35
|
-
"entities": "^6.0.
|
|
35
|
+
"entities": "^6.0.1",
|
|
36
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.
|
|
41
|
+
"scheduler": "^0.26.0",
|
|
42
42
|
"typescript": "^5.8.3"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|