@remkoj/optimizely-cms-react 5.0.0 → 5.0.2

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.
@@ -9,10 +9,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
9
9
  * @returns
10
10
  */
11
11
  export const CmsEditable = ({ ctx, forwardCtx, as, cmsId, cmsFieldName, children, key, forceBlockId, currentContent, editType, ...props }) => {
12
- const { inEditMode, isDebugOrDevelopment, isDebug, editableContent } = ctx || {
12
+ const { inEditMode, isDebugOrDevelopment, isDebug, editableContent, editableContentIsExperience, } = ctx || {
13
13
  inEditMode: false,
14
14
  isDebug: true,
15
15
  isDebugOrDevelopment: true,
16
+ editableContentIsExperience: false,
16
17
  };
17
18
  const DefaultElement = as || 'div';
18
19
  if (isDebugOrDevelopment && inEditMode && !cmsFieldName && !cmsId) {
@@ -26,6 +27,12 @@ export const CmsEditable = ({ ctx, forwardCtx, as, cmsId, cmsFieldName, children
26
27
  ? editableContent?.key == currentContent.key
27
28
  : true
28
29
  : false;
30
+ // If we're rendering for an experience, we don't need to inject property names, as the
31
+ // experience editor only deals with property ids - injecting property names will cause
32
+ // it to outline incorrect items.
33
+ const dataEpiPropertyName = editableContentIsExperience
34
+ ? undefined
35
+ : (cmsFieldName ?? undefined);
29
36
  const itemProps = addEditProps
30
37
  ? {
31
38
  ...props,
@@ -34,7 +41,7 @@ export const CmsEditable = ({ ctx, forwardCtx, as, cmsId, cmsFieldName, children
34
41
  // We assume GUIDs are represented as 32 char long strings
35
42
  'data-epi-content-id': cmsId && cmsId.length == 32 ? cmsId : undefined,
36
43
  // We pass through the property name if provided
37
- 'data-epi-property-name': cmsFieldName ?? undefined,
44
+ 'data-epi-property-name': dataEpiPropertyName,
38
45
  // Configure the rendition of the property editor
39
46
  'data-epi-property-edittype': editType ?? undefined,
40
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":";AAyEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAyB,EAC5E,GAAG,EACH,UAAU,EACV,EAAE,EACF,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,GAAG,EACH,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EAC+B,EAAE,EAAE;IAC3C,MAAM,EAAE,UAAU,EAAE,oBAAoB,EAAE,OAAO,EAAE,eAAe,EAAE,GAClE,GAAG,IAAI;QACL,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,oBAAoB,EAAE,IAAI;KAC3B,CAAA;IACH,MAAM,cAAc,GAAG,EAAE,IAAI,KAAK,CAAA;IAElC,IAAI,oBAAoB,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,cAAc;YACd,CAAC,CAAC,eAAe,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG;YAC5C,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,KAAK,CAAA;IAET,MAAM,SAAS,GAAwB,YAAY;QACjD,CAAC,CAAC;YACE,GAAG,KAAK;YACR,oFAAoF;YACpF,mBAAmB,EACjB,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnE,0DAA0D;YAC1D,qBAAqB,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtE,gDAAgD;YAChD,wBAAwB,EAAE,YAAY,IAAI,SAAS;YACnD,iDAAiD;YACjD,4BAA4B,EAAE,QAAQ,IAAI,SAAS;SACpD;QACH,CAAC,CAAC;YACE,GAAG,KAAK;SACT,CAAA;IAEL,IAAI,UAAU,KAAK,IAAI;QAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAC/C,IAAI,OAAO,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACxD,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAA;IAE7B,OAAO,KAAC,cAAc,OAAK,SAAS,YAAG,QAAQ,GAAkB,CAAA;AACnE,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":";AAyEA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAyB,EAC5E,GAAG,EACH,UAAU,EACV,EAAE,EACF,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,GAAG,EACH,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,GAAG,KAAK,EAC+B,EAAE,EAAE;IAC3C,MAAM,EACJ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,2BAA2B,GAC5B,GAAG,GAAG,IAAI;QACT,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,oBAAoB,EAAE,IAAI;QAC1B,2BAA2B,EAAE,KAAK;KACnC,CAAA;IACD,MAAM,cAAc,GAAG,EAAE,IAAI,KAAK,CAAA;IAElC,IAAI,oBAAoB,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,cAAc;YACd,CAAC,CAAC,eAAe,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG;YAC5C,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,KAAK,CAAA;IAET,uFAAuF;IACvF,uFAAuF;IACvF,iCAAiC;IACjC,MAAM,mBAAmB,GAAG,2BAA2B;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,CAAA;IAE/B,MAAM,SAAS,GAAwB,YAAY;QACjD,CAAC,CAAC;YACE,GAAG,KAAK;YACR,oFAAoF;YACpF,mBAAmB,EACjB,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACnE,0DAA0D;YAC1D,qBAAqB,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACtE,gDAAgD;YAChD,wBAAwB,EAAE,mBAAmB;YAC7C,iDAAiD;YACjD,4BAA4B,EAAE,QAAQ,IAAI,SAAS;SACpD;QACH,CAAC,CAAC;YACE,GAAG,KAAK;SACT,CAAA;IAEL,IAAI,UAAU,KAAK,IAAI;QAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IAC/C,IAAI,OAAO,UAAU,IAAI,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QACxD,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAA;IAE7B,OAAO,KAAC,cAAc,OAAK,SAAS,YAAG,QAAQ,GAAkB,CAAA;AACnE,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
@@ -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
  */
@@ -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
  */
@@ -10,6 +10,7 @@ export declare const enum OptimizelyCmsMode {
10
10
  export interface ClientContext extends GenericContext {
11
11
  setLocale: Dispatch<SetStateAction<string | undefined>>;
12
12
  setMode: Dispatch<SetStateAction<OptimizelyCmsMode>>;
13
+ setEditableContentIsExperience: Dispatch<SetStateAction<boolean>>;
13
14
  }
14
15
  export declare class ClientContextInstance implements GenericContext {
15
16
  readonly client?: IOptiGraphClient | undefined;
@@ -30,12 +30,16 @@ const _clientContext = createContext({
30
30
  isDebug: false,
31
31
  isDebugOrDevelopment: false,
32
32
  isDevelopment: false,
33
+ editableContentIsExperience: false,
33
34
  setLocale: () => {
34
35
  throw new Error('Not implemented');
35
36
  },
36
37
  setMode: () => {
37
38
  throw new Error('Not implemented');
38
39
  },
40
+ setEditableContentIsExperience: () => {
41
+ throw new Error('Not implemented');
42
+ },
39
43
  });
40
44
  _clientContext.displayName = 'Optimizely CMS Provider';
41
45
  export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug, isDevelopment, initialMode = OptimizelyCmsMode.default, initialComponents = [], }) => {
@@ -43,6 +47,7 @@ export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug,
43
47
  //#region React State
44
48
  const [locale, setLocale] = useState();
45
49
  const [mode, setMode] = useState(initialMode);
50
+ const [editableContentIsExperience, setEditableContentIsExperience] = useState(false);
46
51
  //#endregion
47
52
  //#region Memoized Optimizely Graph Client
48
53
  const graphClient = useMemo(() => {
@@ -78,8 +83,15 @@ export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug,
78
83
  inEditMode: mode == OptimizelyCmsMode.edit,
79
84
  inPreviewMode: mode == OptimizelyCmsMode.preview,
80
85
  locale,
86
+ get editableContentIsExperience() {
87
+ return editableContentIsExperience;
88
+ },
89
+ set editableContentIsExperience(newValue) {
90
+ setEditableContentIsExperience(newValue);
91
+ },
81
92
  setLocale,
82
93
  setMode,
94
+ setEditableContentIsExperience,
83
95
  };
84
96
  return _jsx(CtxProvider, { value: ctxValue, children: children });
85
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/context/client.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/context/client.tsx"],"names":[],"mappings":"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"}
@@ -16,6 +16,7 @@ export declare class ServerContext implements GenericContext {
16
16
  private _client;
17
17
  private _factory;
18
18
  private _editable;
19
+ private _editableIsExperience;
19
20
  get client(): IOptiGraphClient | undefined;
20
21
  get factory(): ComponentFactory;
21
22
  get locale(): string | undefined;
@@ -25,12 +26,15 @@ export declare class ServerContext implements GenericContext {
25
26
  get isDebug(): boolean;
26
27
  get isDebugOrDevelopment(): boolean;
27
28
  get editableContent(): GenericContext['editableContent'];
29
+ get editableContentIsExperience(): boolean;
30
+ set editableContentIsExperience(newValue: boolean);
28
31
  constructor({ factory, client, locale, mode, editableContent, }: ServerContextArgs);
29
32
  setMode(mode: 'edit' | 'preview' | 'public'): ServerContext;
30
33
  setLocale(locale: string): ServerContext;
31
34
  setOptimizelyGraphClient(client: IOptiGraphClient | ((currentClient: IOptiGraphClient | undefined) => IOptiGraphClient | undefined)): void;
32
35
  setComponentFactory(factory: ComponentFactory | ((currentClient: ComponentFactory | undefined) => ComponentFactory)): void;
33
36
  setEditableContentId(link: GenericContext['editableContent']): void;
37
+ setEditableContentIsExperience(isExperience: boolean): void;
34
38
  toJSON(key?: string): TransferrableContext;
35
39
  }
36
40
  /**
@@ -32,7 +32,14 @@ export class ServerContext {
32
32
  get editableContent() {
33
33
  return this._editable;
34
34
  }
35
+ get editableContentIsExperience() {
36
+ return this._editableIsExperience;
37
+ }
38
+ set editableContentIsExperience(newValue) {
39
+ this._editableIsExperience = newValue;
40
+ }
35
41
  constructor({ factory, client, locale, mode, editableContent, }) {
42
+ this._editableIsExperience = false;
36
43
  this._factory = Array.isArray(factory)
37
44
  ? new DefaultComponentFactory(factory)
38
45
  : factory || new DefaultComponentFactory();
@@ -76,6 +83,9 @@ export class ServerContext {
76
83
  console.log(`🦺 [ServerContext] Assigning editable content id: ${JSON.stringify(link)}`);
77
84
  this._editable = link;
78
85
  }
86
+ setEditableContentIsExperience(isExperience) {
87
+ this._editableIsExperience = isExperience;
88
+ }
79
89
  toJSON(key) {
80
90
  if (this.isDebugOrDevelopment) {
81
91
  console.warn('🦺 [ServerContext] Converting Context to JSON, this is typically a side effect of the context being passed between Server & Client components');
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/context/rsc.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/context/rsc.tsx"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface GenericContext {
11
11
  readonly isDebug: boolean;
12
12
  readonly isDebugOrDevelopment: boolean;
13
13
  readonly editableContent?: ContentLink | null;
14
+ editableContentIsExperience?: boolean;
14
15
  }
15
16
  /**
16
17
  * The context information that can cross the React Server/Client boundary
@@ -24,6 +25,7 @@ export interface TransferrableContext {
24
25
  readonly isDebug: boolean;
25
26
  readonly isDebugOrDevelopment: boolean;
26
27
  readonly editableContent?: ContentLink | null;
28
+ readonly editableContentIsExperience?: boolean;
27
29
  }
28
30
  export type BaseContext = TransferrableContext | GenericContext;
29
31
  export type PropsWithContext<P = {}> = P & {
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.0",
4
+ "version": "5.0.2",
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,13 +27,13 @@
27
27
  }
28
28
  },
29
29
  "devDependencies": {
30
- "@remkoj/optimizely-graph-client": "5.0.0",
30
+ "@remkoj/optimizely-graph-client": "5.0.2",
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",
32
+ "@types/node": "^22.15.17",
33
+ "@types/react": "^18.3.21",
34
+ "@types/react-dom": "18.3.7",
35
35
  "entities": "^6.0.0",
36
- "graphql": "^16.10.0",
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",
@@ -46,7 +46,7 @@
46
46
  "crypto-js": "^4.2.0"
47
47
  },
48
48
  "peerDependencies": {
49
- "@remkoj/optimizely-graph-client": "^5.0.0",
49
+ "@remkoj/optimizely-graph-client": "^5",
50
50
  "entities": "^6",
51
51
  "graphql": "^16",
52
52
  "graphql-request": "^6",