react-datocms 7.2.5-1 → 7.2.5

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.
@@ -81,14 +81,16 @@ const index_js_1 = require("../useContentLink/index.js");
81
81
  */
82
82
  function ContentLink(props) {
83
83
  const { currentPath, enableClickToEdit: enableClickToEditOptions } = props, useContentLinkOptions = __rest(props, ["currentPath", "enableClickToEdit"]);
84
- const { enableClickToEdit, setCurrentPath } = (0, index_js_1.useContentLink)(useContentLinkOptions);
84
+ const { enableClickToEdit, setCurrentPath } = (0, index_js_1.useContentLink)(Object.assign(Object.assign({}, useContentLinkOptions), {
85
+ // Always strip stega encoding in the component for clean DOM
86
+ enabled: { stripStega: true } }));
85
87
  // Sync current path when it changes
86
88
  (0, react_1.useEffect)(() => {
87
89
  if (currentPath !== undefined) {
88
90
  setCurrentPath(currentPath);
89
91
  }
90
92
  }, [currentPath, setCurrentPath]);
91
- // Optionally enable click-to-edit on mount
93
+ // Enable click-to-edit on mount if requested
92
94
  (0, react_1.useEffect)(() => {
93
95
  if (enableClickToEditOptions !== undefined) {
94
96
  enableClickToEdit(enableClickToEditOptions === true ? undefined : enableClickToEditOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ContentLink/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;AAEb,iCAAkC;AAClC,yDAGoC;AASpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,SAAgB,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,WAAW,EACX,iBAAiB,EAAE,wBAAwB,KAEzC,KAAK,EADJ,qBAAqB,UACtB,KAAK,EAJH,oCAIL,CAAQ,CAAC;IAEV,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAA,yBAAc,EAC1D,qBAAqB,CACtB,CAAC;IAEF,oCAAoC;IACpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,2CAA2C;IAC3C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,iBAAiB,CACf,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AA5BD,kCA4BC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ContentLink/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;AAEb,iCAAkC;AAClC,yDAGoC;AASpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,SAAgB,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,WAAW,EACX,iBAAiB,EAAE,wBAAwB,KAEzC,KAAK,EADJ,qBAAqB,UACtB,KAAK,EAJH,oCAIL,CAAQ,CAAC;IAEV,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,IAAA,yBAAc,kCACvD,qBAAqB;QACxB,6DAA6D;QAC7D,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAC7B,CAAC;IAEH,oCAAoC;IACpC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,6CAA6C;IAC7C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,iBAAiB,CACf,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC;AA9BD,kCA8BC"}
@@ -46,16 +46,21 @@ function useContentLink(options = {}) {
46
46
  // Create/dispose controller based on enabled flag and root only
47
47
  // The onNavigateTo callback is accessed via ref, so changes don't trigger recreation
48
48
  (0, react_1.useEffect)(() => {
49
- if (!enabled) {
49
+ // Check if controller is disabled
50
+ const isEnabled = enabled === true || (typeof enabled === 'object' && enabled !== null);
51
+ if (!isEnabled) {
50
52
  if (controllerRef.current) {
51
53
  controllerRef.current.dispose();
52
54
  controllerRef.current = null;
53
55
  }
54
56
  return;
55
57
  }
58
+ // Extract stripStega option if enabled is an object
59
+ const stripStega = typeof enabled === 'object' ? enabled.stripStega : false;
56
60
  const controller = (0, content_link_1.createController)({
57
61
  onNavigateTo: (path) => { var _a; return (_a = onNavigateToRef.current) === null || _a === void 0 ? void 0 : _a.call(onNavigateToRef, path); },
58
62
  root: (root === null || root === void 0 ? void 0 : root.current) || undefined,
63
+ stripStega,
59
64
  });
60
65
  controllerRef.current = controller;
61
66
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useContentLink/index.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAEb,wDAA0E;AAC1E,iCAAuD;AAIvD,sDAAgE;AAAvD,2GAAA,WAAW,OAAA;AAAE,0GAAA,UAAU,OAAA;AA0BhC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,cAAc,CAC5B,UAAiC,EAAE;IAEnC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,aAAa,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IACtD,iFAAiF;IACjF,MAAM,eAAe,GAAG,IAAA,cAAM,EAAC,YAAY,CAAC,CAAC;IAE7C,mCAAmC;IACnC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;IACzC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,gEAAgE;IAChE,qFAAqF;IACrF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,+BAAgB,EAAC;YAClC,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,OAAO,gEAAG,IAAI,CAAC,CAAA,EAAA;YAC/D,IAAI,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,SAAS;SACjC,CAAC,CAAC;QAEH,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,IAAA,mBAAW,EACnC,CAAC,IAAyC,EAAE,EAAE;;QAC5C,MAAA,aAAa,CAAC,OAAO,0CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;;QAC1C,MAAA,aAAa,CAAC,OAAO,0CAAE,kBAAkB,EAAE,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE;;QAC5C,OAAO,MAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,oBAAoB,EAAE,mCAAI,KAAK,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,CAAC,qBAA+B,EAAE,EAAE;;QAC/D,MAAA,aAAa,CAAC,OAAO,0CAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,IAAA,mBAAW,EAAC,CAAC,IAAY,EAAE,EAAE;;QAClD,MAAA,aAAa,CAAC,OAAO,0CAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,OAAO;QACjC,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,QAAQ;QACR,cAAc;KACf,CAAC;AACJ,CAAC;AAtED,wCAsEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useContentLink/index.ts"],"names":[],"mappings":"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"}
@@ -78,14 +78,16 @@ import { useContentLink, } from '../useContentLink/index.js';
78
78
  */
79
79
  export function ContentLink(props) {
80
80
  const { currentPath, enableClickToEdit: enableClickToEditOptions } = props, useContentLinkOptions = __rest(props, ["currentPath", "enableClickToEdit"]);
81
- const { enableClickToEdit, setCurrentPath } = useContentLink(useContentLinkOptions);
81
+ const { enableClickToEdit, setCurrentPath } = useContentLink(Object.assign(Object.assign({}, useContentLinkOptions), {
82
+ // Always strip stega encoding in the component for clean DOM
83
+ enabled: { stripStega: true } }));
82
84
  // Sync current path when it changes
83
85
  useEffect(() => {
84
86
  if (currentPath !== undefined) {
85
87
  setCurrentPath(currentPath);
86
88
  }
87
89
  }, [currentPath, setCurrentPath]);
88
- // Optionally enable click-to-edit on mount
90
+ // Enable click-to-edit on mount if requested
89
91
  useEffect(() => {
90
92
  if (enableClickToEditOptions !== undefined) {
91
93
  enableClickToEdit(enableClickToEditOptions === true ? undefined : enableClickToEditOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ContentLink/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAC;AASpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,WAAW,EACX,iBAAiB,EAAE,wBAAwB,KAEzC,KAAK,EADJ,qBAAqB,UACtB,KAAK,EAJH,oCAIL,CAAQ,CAAC;IAEV,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,cAAc,CAC1D,qBAAqB,CACtB,CAAC;IAEF,oCAAoC;IACpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,2CAA2C;IAC3C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,iBAAiB,CACf,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ContentLink/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAC;AASpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,MAAM,UAAU,WAAW,CAAC,KAAuB;IACjD,MAAM,EACJ,WAAW,EACX,iBAAiB,EAAE,wBAAwB,KAEzC,KAAK,EADJ,qBAAqB,UACtB,KAAK,EAJH,oCAIL,CAAQ,CAAC;IAEV,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,cAAc,iCACvD,qBAAqB;QACxB,6DAA6D;QAC7D,OAAO,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,IAC7B,CAAC;IAEH,oCAAoC;IACpC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,cAAc,CAAC,WAAW,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,6CAA6C;IAC7C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,wBAAwB,KAAK,SAAS,EAAE,CAAC;YAC3C,iBAAiB,CACf,wBAAwB,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CACzE,CAAC;QACJ,CAAC;IACH,CAAC,EAAE,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAElD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -41,16 +41,21 @@ export function useContentLink(options = {}) {
41
41
  // Create/dispose controller based on enabled flag and root only
42
42
  // The onNavigateTo callback is accessed via ref, so changes don't trigger recreation
43
43
  useEffect(() => {
44
- if (!enabled) {
44
+ // Check if controller is disabled
45
+ const isEnabled = enabled === true || (typeof enabled === 'object' && enabled !== null);
46
+ if (!isEnabled) {
45
47
  if (controllerRef.current) {
46
48
  controllerRef.current.dispose();
47
49
  controllerRef.current = null;
48
50
  }
49
51
  return;
50
52
  }
53
+ // Extract stripStega option if enabled is an object
54
+ const stripStega = typeof enabled === 'object' ? enabled.stripStega : false;
51
55
  const controller = createController({
52
56
  onNavigateTo: (path) => { var _a; return (_a = onNavigateToRef.current) === null || _a === void 0 ? void 0 : _a.call(onNavigateToRef, path); },
53
57
  root: (root === null || root === void 0 ? void 0 : root.current) || undefined,
58
+ stripStega,
54
59
  });
55
60
  controllerRef.current = controller;
56
61
  return () => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useContentLink/index.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAmB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AA0BhE;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,cAAc,CAC5B,UAAiC,EAAE;IAEnC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IAEvD,MAAM,aAAa,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACtD,iFAAiF;IACjF,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAE7C,mCAAmC;IACnC,SAAS,CAAC,GAAG,EAAE;QACb,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;IACzC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,gEAAgE;IAChE,qFAAqF;IACrF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;gBAC1B,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChC,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC;YAClC,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,WAAC,OAAA,MAAA,eAAe,CAAC,OAAO,gEAAG,IAAI,CAAC,CAAA,EAAA;YAC/D,IAAI,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,SAAS;SACjC,CAAC,CAAC;QAEH,aAAa,CAAC,OAAO,GAAG,UAAU,CAAC;QAEnC,OAAO,GAAG,EAAE;YACV,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,aAAa,CAAC,OAAO,GAAG,IAAI,CAAC;QAC/B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAEpB,+DAA+D;IAC/D,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,IAAyC,EAAE,EAAE;;QAC5C,MAAA,aAAa,CAAC,OAAO,0CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,EAAE;;QAC1C,MAAA,aAAa,CAAC,OAAO,0CAAE,kBAAkB,EAAE,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,EAAE;;QAC5C,OAAO,MAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,oBAAoB,EAAE,mCAAI,KAAK,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,qBAA+B,EAAE,EAAE;;QAC/D,MAAA,aAAa,CAAC,OAAO,0CAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IACzD,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;;QAClD,MAAA,aAAa,CAAC,OAAO,0CAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,UAAU,EAAE,aAAa,CAAC,OAAO;QACjC,iBAAiB;QACjB,kBAAkB;QAClB,oBAAoB;QACpB,QAAQ;QACR,cAAc;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useContentLink/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type UseContentLinkOptions } from '../useContentLink/index.js';
2
- export type ContentLinkProps = UseContentLinkOptions & {
2
+ export type ContentLinkProps = Omit<UseContentLinkOptions, 'enabled'> & {
3
3
  /** Current pathname to sync with Web Previews plugin */
4
4
  currentPath?: string;
5
5
  /** Enable click-to-edit on mount. Pass true for default behavior or an object with scrollToNearestTarget. If undefined, click-to-edit is disabled. */
@@ -3,12 +3,27 @@ import { type Controller } from '@datocms/content-link';
3
3
  export type { Controller } from '@datocms/content-link';
4
4
  export { decodeStega, stripStega } from '@datocms/content-link';
5
5
  export type UseContentLinkOptions = {
6
- /** Whether the controller is enabled (default: true) */
7
- enabled?: boolean;
6
+ /**
7
+ * Whether the controller is enabled, or an options object.
8
+ * - Pass `true` (default): Enables the controller with stega encoding preserved (allows controller recreation)
9
+ * - Pass `false`: Disables the controller completely
10
+ * - Pass `{ stripStega: true }`: Enables the controller and strips stega encoding after stamping
11
+ *
12
+ * When stripStega is false (default): Stega encoding remains in the DOM, allowing controllers
13
+ * to be disposed and recreated on the same page. The invisible characters don't affect display
14
+ * but preserve the source of truth.
15
+ *
16
+ * When stripStega is true: Stega encoding is permanently removed from text nodes, providing
17
+ * clean textContent for programmatic access. However, recreating a controller on the same page
18
+ * won't detect elements since the encoding is lost.
19
+ */
20
+ enabled?: boolean | {
21
+ stripStega: boolean;
22
+ };
8
23
  /** Callback when Web Previews plugin requests navigation */
9
24
  onNavigateTo?: (path: string) => void;
10
25
  /** Ref to limit scanning to this root instead of document */
11
- root?: React.RefObject<ParentNode>;
26
+ root?: React.RefObject<HTMLElement>;
12
27
  };
13
28
  export type UseContentLinkResult = {
14
29
  /** The controller instance, or null if disabled */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-datocms",
3
- "version": "7.2.5-1",
3
+ "version": "7.2.5",
4
4
  "engines": {
5
5
  "node": ">=8.0.0"
6
6
  },
@@ -149,7 +149,7 @@
149
149
  "react": ">= 16.12.0 || ^19.0.0-rc"
150
150
  },
151
151
  "dependencies": {
152
- "@datocms/content-link": "^0.3.6",
152
+ "@datocms/content-link": "^0.3.7",
153
153
  "@mux/mux-player-react": "*",
154
154
  "datocms-listen": "^0.1.9",
155
155
  "datocms-structured-text-generic-html-renderer": "^5.0.0",
@@ -6,7 +6,7 @@ import {
6
6
  useContentLink,
7
7
  } from '../useContentLink/index.js';
8
8
 
9
- export type ContentLinkProps = UseContentLinkOptions & {
9
+ export type ContentLinkProps = Omit<UseContentLinkOptions, 'enabled'> & {
10
10
  /** Current pathname to sync with Web Previews plugin */
11
11
  currentPath?: string;
12
12
  /** Enable click-to-edit on mount. Pass true for default behavior or an object with scrollToNearestTarget. If undefined, click-to-edit is disabled. */
@@ -84,9 +84,11 @@ export function ContentLink(props: ContentLinkProps): null {
84
84
  ...useContentLinkOptions
85
85
  } = props;
86
86
 
87
- const { enableClickToEdit, setCurrentPath } = useContentLink(
88
- useContentLinkOptions,
89
- );
87
+ const { enableClickToEdit, setCurrentPath } = useContentLink({
88
+ ...useContentLinkOptions,
89
+ // Always strip stega encoding in the component for clean DOM
90
+ enabled: { stripStega: true },
91
+ });
90
92
 
91
93
  // Sync current path when it changes
92
94
  useEffect(() => {
@@ -95,7 +97,7 @@ export function ContentLink(props: ContentLinkProps): null {
95
97
  }
96
98
  }, [currentPath, setCurrentPath]);
97
99
 
98
- // Optionally enable click-to-edit on mount
100
+ // Enable click-to-edit on mount if requested
99
101
  useEffect(() => {
100
102
  if (enableClickToEditOptions !== undefined) {
101
103
  enableClickToEdit(
@@ -8,12 +8,25 @@ export type { Controller } from '@datocms/content-link';
8
8
  export { decodeStega, stripStega } from '@datocms/content-link';
9
9
 
10
10
  export type UseContentLinkOptions = {
11
- /** Whether the controller is enabled (default: true) */
12
- enabled?: boolean;
11
+ /**
12
+ * Whether the controller is enabled, or an options object.
13
+ * - Pass `true` (default): Enables the controller with stega encoding preserved (allows controller recreation)
14
+ * - Pass `false`: Disables the controller completely
15
+ * - Pass `{ stripStega: true }`: Enables the controller and strips stega encoding after stamping
16
+ *
17
+ * When stripStega is false (default): Stega encoding remains in the DOM, allowing controllers
18
+ * to be disposed and recreated on the same page. The invisible characters don't affect display
19
+ * but preserve the source of truth.
20
+ *
21
+ * When stripStega is true: Stega encoding is permanently removed from text nodes, providing
22
+ * clean textContent for programmatic access. However, recreating a controller on the same page
23
+ * won't detect elements since the encoding is lost.
24
+ */
25
+ enabled?: boolean | { stripStega: boolean };
13
26
  /** Callback when Web Previews plugin requests navigation */
14
27
  onNavigateTo?: (path: string) => void;
15
28
  /** Ref to limit scanning to this root instead of document */
16
- root?: React.RefObject<ParentNode>;
29
+ root?: React.RefObject<HTMLElement>;
17
30
  };
18
31
 
19
32
  export type UseContentLinkResult = {
@@ -75,7 +88,10 @@ export function useContentLink(
75
88
  // Create/dispose controller based on enabled flag and root only
76
89
  // The onNavigateTo callback is accessed via ref, so changes don't trigger recreation
77
90
  useEffect(() => {
78
- if (!enabled) {
91
+ // Check if controller is disabled
92
+ const isEnabled = enabled === true || (typeof enabled === 'object' && enabled !== null);
93
+
94
+ if (!isEnabled) {
79
95
  if (controllerRef.current) {
80
96
  controllerRef.current.dispose();
81
97
  controllerRef.current = null;
@@ -83,9 +99,13 @@ export function useContentLink(
83
99
  return;
84
100
  }
85
101
 
102
+ // Extract stripStega option if enabled is an object
103
+ const stripStega = typeof enabled === 'object' ? enabled.stripStega : false;
104
+
86
105
  const controller = createController({
87
106
  onNavigateTo: (path: string) => onNavigateToRef.current?.(path),
88
107
  root: root?.current || undefined,
108
+ stripStega,
89
109
  });
90
110
 
91
111
  controllerRef.current = controller;