react-datocms 2.0.1 → 2.2.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.
Files changed (50) hide show
  1. package/README.md +143 -58
  2. package/dist/cjs/Seo/__tests__/index.test.js +272 -37
  3. package/dist/cjs/Seo/__tests__/index.test.js.map +1 -1
  4. package/dist/cjs/Seo/index.js +13 -60
  5. package/dist/cjs/Seo/index.js.map +1 -1
  6. package/dist/cjs/Seo/remixUtils.js +33 -0
  7. package/dist/cjs/Seo/remixUtils.js.map +1 -0
  8. package/dist/cjs/Seo/renderMetaTags.js +40 -0
  9. package/dist/cjs/Seo/renderMetaTags.js.map +1 -0
  10. package/dist/cjs/Seo/renderMetaTagsToString.js +22 -0
  11. package/dist/cjs/Seo/renderMetaTagsToString.js.map +1 -0
  12. package/dist/cjs/Seo/types.js +5 -0
  13. package/dist/cjs/Seo/types.js.map +1 -0
  14. package/dist/cjs/StructuredText/__tests__/index.test.js +77 -67
  15. package/dist/cjs/StructuredText/__tests__/index.test.js.map +1 -1
  16. package/dist/cjs/StructuredText/index.js +76 -61
  17. package/dist/cjs/StructuredText/index.js.map +1 -1
  18. package/dist/cjs/useQuerySubscription/index.js +1 -1
  19. package/dist/cjs/useQuerySubscription/index.js.map +1 -1
  20. package/dist/esm/Seo/__tests__/index.test.js +271 -36
  21. package/dist/esm/Seo/__tests__/index.test.js.map +1 -1
  22. package/dist/esm/Seo/index.d.ts +4 -12
  23. package/dist/esm/Seo/index.js +4 -55
  24. package/dist/esm/Seo/index.js.map +1 -1
  25. package/dist/esm/Seo/remixUtils.d.ts +6 -0
  26. package/dist/esm/Seo/remixUtils.js +29 -0
  27. package/dist/esm/Seo/remixUtils.js.map +1 -0
  28. package/dist/esm/Seo/renderMetaTags.d.ts +3 -0
  29. package/dist/esm/Seo/renderMetaTags.js +33 -0
  30. package/dist/esm/Seo/renderMetaTags.js.map +1 -0
  31. package/dist/esm/Seo/renderMetaTagsToString.d.ts +2 -0
  32. package/dist/esm/Seo/renderMetaTagsToString.js +18 -0
  33. package/dist/esm/Seo/renderMetaTagsToString.js.map +1 -0
  34. package/dist/esm/Seo/types.d.ts +37 -0
  35. package/dist/esm/Seo/types.js +4 -0
  36. package/dist/esm/Seo/types.js.map +1 -0
  37. package/dist/esm/StructuredText/__tests__/index.test.js +81 -71
  38. package/dist/esm/StructuredText/__tests__/index.test.js.map +1 -1
  39. package/dist/esm/StructuredText/index.d.ts +12 -7
  40. package/dist/esm/StructuredText/index.js +78 -63
  41. package/dist/esm/StructuredText/index.js.map +1 -1
  42. package/dist/esm/useQuerySubscription/index.js +1 -1
  43. package/dist/esm/useQuerySubscription/index.js.map +1 -1
  44. package/dist/types/Seo/index.d.ts +4 -12
  45. package/dist/types/Seo/remixUtils.d.ts +6 -0
  46. package/dist/types/Seo/renderMetaTags.d.ts +3 -0
  47. package/dist/types/Seo/renderMetaTagsToString.d.ts +2 -0
  48. package/dist/types/Seo/types.d.ts +37 -0
  49. package/dist/types/StructuredText/index.d.ts +12 -7
  50. package/package.json +2 -2
@@ -1,7 +1,14 @@
1
- import { defaultMetaTransformer, render, renderRule, } from "datocms-structured-text-generic-html-renderer";
2
- import { isBlock, isInlineItem, isItemLink, RenderError, isStructuredText, } from "datocms-structured-text-utils";
3
- import React, { cloneElement, isValidElement } from "react";
4
- export { renderRule, RenderError, };
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
2
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
3
+ to[j] = from[i];
4
+ return to;
5
+ };
6
+ import { defaultMetaTransformer, render, renderNodeRule, renderMarkRule, } from 'datocms-structured-text-generic-html-renderer';
7
+ import { isBlock, isInlineItem, isItemLink, RenderError, isStructuredText, } from 'datocms-structured-text-utils';
8
+ import React, { cloneElement, isValidElement } from 'react';
9
+ export { renderNodeRule, renderMarkRule, RenderError };
10
+ // deprecated
11
+ export { renderNodeRule as renderRule };
5
12
  export var defaultAdapter = {
6
13
  renderNode: React.createElement,
7
14
  renderFragment: function (children, key) { return React.createElement(React.Fragment, { key: key }, children); },
@@ -14,64 +21,72 @@ export function appendKeyToValidElement(element, key) {
14
21
  return element;
15
22
  }
16
23
  export function StructuredText(_a) {
17
- var data = _a.data, renderInlineRecord = _a.renderInlineRecord, renderLinkToRecord = _a.renderLinkToRecord, renderBlock = _a.renderBlock, renderText = _a.renderText, renderNode = _a.renderNode, renderFragment = _a.renderFragment, customRules = _a.customRules, metaTransformer = _a.metaTransformer;
18
- var result = render({
19
- renderText: renderText || defaultAdapter.renderText,
20
- renderNode: renderNode || defaultAdapter.renderNode,
21
- renderFragment: renderFragment || defaultAdapter.renderFragment
22
- }, data, [
23
- renderRule(isInlineItem, function (_a) {
24
- var node = _a.node, key = _a.key;
25
- if (!renderInlineRecord) {
26
- throw new RenderError("The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' prop is specified!", node);
27
- }
28
- if (!isStructuredText(data) || !data.links) {
29
- throw new RenderError("The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!", node);
30
- }
31
- var item = data.links.find(function (item) { return item.id === node.item; });
32
- if (!item) {
33
- throw new RenderError("The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
34
- }
35
- return appendKeyToValidElement(renderInlineRecord({ record: item }), key);
36
- }),
37
- renderRule(isItemLink, function (_a) {
38
- var node = _a.node, key = _a.key, children = _a.children;
39
- if (!renderLinkToRecord) {
40
- throw new RenderError("The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' prop is specified!", node);
41
- }
42
- if (!isStructuredText(data) || !data.links) {
43
- throw new RenderError("The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!", node);
44
- }
45
- var item = data.links.find(function (item) { return item.id === node.item; });
46
- if (!item) {
47
- throw new RenderError("The Structured Text document contains an 'itemLink' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
48
- }
49
- return appendKeyToValidElement(renderLinkToRecord({
50
- record: item,
51
- children: children,
52
- transformedMeta: node.meta
53
- ? (metaTransformer || defaultMetaTransformer)({
54
- node: node,
55
- meta: node.meta
56
- })
57
- : null
58
- }), key);
59
- }),
60
- renderRule(isBlock, function (_a) {
61
- var node = _a.node, key = _a.key;
62
- if (!renderBlock) {
63
- throw new RenderError("The Structured Text document contains a 'block' node, but no 'renderBlock' prop is specified!", node);
64
- }
65
- if (!isStructuredText(data) || !data.blocks) {
66
- throw new RenderError("The document contains an 'block' node, but the passed data prop is not a Structured Text GraphQL response, or data.blocks is not present!", node);
67
- }
68
- var item = data.blocks.find(function (item) { return item.id === node.item; });
69
- if (!item) {
70
- throw new RenderError("The Structured Text document contains a 'block' node, but cannot find a record with ID " + node.item + " inside data.blocks!", node);
71
- }
72
- return appendKeyToValidElement(renderBlock({ record: item }), key);
73
- }),
74
- ].concat(customRules || []), metaTransformer);
75
- return result;
24
+ var data = _a.data, renderInlineRecord = _a.renderInlineRecord, renderLinkToRecord = _a.renderLinkToRecord, renderBlock = _a.renderBlock, renderText = _a.renderText, renderNode = _a.renderNode, renderFragment = _a.renderFragment, customMarkRules = _a.customMarkRules, customRules = _a.customRules, customNodeRules = _a.customNodeRules, metaTransformer = _a.metaTransformer;
25
+ var result = render(data, {
26
+ adapter: {
27
+ renderText: renderText || defaultAdapter.renderText,
28
+ renderNode: renderNode || defaultAdapter.renderNode,
29
+ renderFragment: renderFragment || defaultAdapter.renderFragment
30
+ },
31
+ metaTransformer: metaTransformer,
32
+ customMarkRules: customMarkRules,
33
+ customNodeRules: __spreadArray([
34
+ renderNodeRule(isInlineItem, function (_a) {
35
+ var node = _a.node, key = _a.key;
36
+ if (!renderInlineRecord) {
37
+ throw new RenderError("The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' prop is specified!", node);
38
+ }
39
+ if (!isStructuredText(data) || !data.links) {
40
+ throw new RenderError("The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!", node);
41
+ }
42
+ var item = data.links.find(function (item) { return item.id === node.item; });
43
+ if (!item) {
44
+ throw new RenderError("The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
45
+ }
46
+ return appendKeyToValidElement(renderInlineRecord({ record: item }), key);
47
+ }),
48
+ renderNodeRule(isItemLink, function (_a) {
49
+ var node = _a.node, key = _a.key, children = _a.children;
50
+ if (!renderLinkToRecord) {
51
+ throw new RenderError("The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' prop is specified!", node);
52
+ }
53
+ if (!isStructuredText(data) || !data.links) {
54
+ throw new RenderError("The document contains an 'itemLink' node, but the passed data prop is not a Structured Text GraphQL response, or data.links is not present!", node);
55
+ }
56
+ var item = data.links.find(function (item) { return item.id === node.item; });
57
+ if (!item) {
58
+ throw new RenderError("The Structured Text document contains an 'itemLink' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
59
+ }
60
+ return appendKeyToValidElement(renderLinkToRecord({
61
+ record: item,
62
+ children: children,
63
+ transformedMeta: node.meta
64
+ ? (metaTransformer || defaultMetaTransformer)({
65
+ node: node,
66
+ meta: node.meta
67
+ })
68
+ : null
69
+ }), key);
70
+ }),
71
+ renderNodeRule(isBlock, function (_a) {
72
+ var node = _a.node, key = _a.key;
73
+ if (!renderBlock) {
74
+ throw new RenderError("The Structured Text document contains a 'block' node, but no 'renderBlock' prop is specified!", node);
75
+ }
76
+ if (!isStructuredText(data) || !data.blocks) {
77
+ throw new RenderError("The document contains an 'block' node, but the passed data prop is not a Structured Text GraphQL response, or data.blocks is not present!", node);
78
+ }
79
+ var item = data.blocks.find(function (item) { return item.id === node.item; });
80
+ if (!item) {
81
+ throw new RenderError("The Structured Text document contains a 'block' node, but cannot find a record with ID " + node.item + " inside data.blocks!", node);
82
+ }
83
+ return appendKeyToValidElement(renderBlock({ record: item }), key);
84
+ })
85
+ ], (customNodeRules || customRules || []))
86
+ });
87
+ if (typeof result === 'string') {
88
+ return React.createElement(React.Fragment, null, result);
89
+ }
90
+ return result || null;
76
91
  }
77
92
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/StructuredText/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/StructuredText/index.tsx"],"names":[],"mappings":"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"}
@@ -99,7 +99,7 @@ export function useQuerySubscription(options) {
99
99
  unsubscribe();
100
100
  }
101
101
  };
102
- }, Object.values(subscribeToQueryOptions));
102
+ }, [subscribeToQueryOptions]);
103
103
  return { error: error, status: status, data: data || initialData };
104
104
  }
105
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useQuerySubscription/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,gBAAgB,GAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,2BAA2B,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAyB9F,MAAM,UAAU,oBAAoB,CAGlC,OAA0D;IAClD,IAAA,OAAO,GAA4B,OAAO,QAAnC,EAAE,WAAW,GAAe,OAAO,YAAtB,EAAK,KAAK,UAAK,OAAO,EAA5C,0BAAkC,CAAF,CAAa;IAE7C,IAAA,KAAoB,QAAQ,CAA0B,IAAI,CAAC,EAA1D,KAAK,QAAA,EAAE,QAAQ,QAA2C,CAAC;IAC5D,IAAA,KAAkB,QAAQ,CAAqB,IAAI,CAAC,EAAnD,IAAI,QAAA,EAAE,OAAO,QAAsC,CAAC;IACrD,IAAA,KAAsB,QAAQ,CAClC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAClC,EAFM,MAAM,QAAA,EAAE,SAAS,QAEvB,CAAC;IAEF,IAAM,uBAAuB,GAAG,KAG/B,CAAC;IAEF,oBAAoB,CAAC;QACnB,IAAI,OAAO,KAAK,KAAK,EAAE;YACrB,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEpB,OAAO;gBACL,yCAAyC;YAC3C,CAAC,CAAC;SACH;QAED,IAAI,WAAiC,CAAC;QAEtC,SAAe,SAAS;;;;gCACR,qBAAM,gBAAgB,uBAC/B,uBAAuB,KAC1B,cAAc,EAAE,UAAC,MAAM;oCACrB,SAAS,CAAC,MAAM,CAAC,CAAC;gCACpB,CAAC,EACD,QAAQ,EAAE,UAAC,UAAU;oCACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;oCACf,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCACpC,CAAC,EACD,cAAc,EAAE,UAAC,SAAS;oCACxB,OAAO,CAAC,IAAI,CAAC,CAAC;oCACd,QAAQ,CAAC,SAAS,CAAC,CAAC;gCACtB,CAAC,IACD,EAAA;;4BAbF,WAAW,GAAG,SAaZ,CAAC;;;;;SACJ;QAED,SAAS,EAAE,CAAC;QAEZ,OAAO;YACL,IAAI,WAAW,EAAE;gBACf,WAAW,EAAE,CAAC;aACf;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE3C,OAAO,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AACtD,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/useQuerySubscription/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EACL,gBAAgB,GAKjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,2BAA2B,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAyB9F,MAAM,UAAU,oBAAoB,CAGlC,OAA0D;IAClD,IAAA,OAAO,GAA4B,OAAO,QAAnC,EAAE,WAAW,GAAe,OAAO,YAAtB,EAAK,KAAK,UAAK,OAAO,EAA5C,0BAAkC,CAAF,CAAa;IAE7C,IAAA,KAAoB,QAAQ,CAA0B,IAAI,CAAC,EAA1D,KAAK,QAAA,EAAE,QAAQ,QAA2C,CAAC;IAC5D,IAAA,KAAkB,QAAQ,CAAqB,IAAI,CAAC,EAAnD,IAAI,QAAA,EAAE,OAAO,QAAsC,CAAC;IACrD,IAAA,KAAsB,QAAQ,CAClC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAClC,EAFM,MAAM,QAAA,EAAE,SAAS,QAEvB,CAAC;IAEF,IAAM,uBAAuB,GAAG,KAG/B,CAAC;IAEF,oBAAoB,CAAC;QACnB,IAAI,OAAO,KAAK,KAAK,EAAE;YACrB,SAAS,CAAC,QAAQ,CAAC,CAAC;YAEpB,OAAO;gBACL,yCAAyC;YAC3C,CAAC,CAAC;SACH;QAED,IAAI,WAAiC,CAAC;QAEtC,SAAe,SAAS;;;;gCACR,qBAAM,gBAAgB,uBAC/B,uBAAuB,KAC1B,cAAc,EAAE,UAAC,MAAM;oCACrB,SAAS,CAAC,MAAM,CAAC,CAAC;gCACpB,CAAC,EACD,QAAQ,EAAE,UAAC,UAAU;oCACnB,QAAQ,CAAC,IAAI,CAAC,CAAC;oCACf,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gCACpC,CAAC,EACD,cAAc,EAAE,UAAC,SAAS;oCACxB,OAAO,CAAC,IAAI,CAAC,CAAC;oCACd,QAAQ,CAAC,SAAS,CAAC,CAAC;gCACtB,CAAC,IACD,EAAA;;4BAbF,WAAW,GAAG,SAaZ,CAAC;;;;;SACJ;QAED,SAAS,EAAE,CAAC;QAEZ,OAAO;YACL,IAAI,WAAW,EAAE;gBACf,WAAW,EAAE,CAAC;aACf;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,IAAI,EAAE,IAAI,IAAI,WAAW,EAAE,CAAC;AACtD,CAAC"}
@@ -1,12 +1,4 @@
1
- /// <reference types="react" />
2
- export declare type SeoMetaTagType = {
3
- /** the tag for the meta information */
4
- tag: string;
5
- /** the inner content of the meta tag */
6
- content: string | null;
7
- /** the HTML attributes to attach to the meta tag */
8
- attributes: Record<string, string> | null;
9
- };
10
- export declare type ToMetaTagsType = SeoMetaTagType[];
11
- export declare const renderMetaTags: (data: SeoMetaTagType[]) => JSX.Element[];
12
- export declare const renderMetaTagsToString: (data: SeoMetaTagType[]) => string;
1
+ export * from './types';
2
+ export * from './remixUtils';
3
+ export * from './renderMetaTags';
4
+ export * from './renderMetaTagsToString';
@@ -0,0 +1,6 @@
1
+ import { SeoOrFaviconTag } from './types';
2
+ interface RemixHtmlMetaDescriptor {
3
+ [name: string]: string | string[];
4
+ }
5
+ export declare function toRemixMeta(metaTags: null | SeoOrFaviconTag[]): RemixHtmlMetaDescriptor;
6
+ export {};
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { SeoOrFaviconTag } from './types';
3
+ export declare function renderMetaTags(data: SeoOrFaviconTag[]): JSX.Element[];
@@ -0,0 +1,2 @@
1
+ import { SeoOrFaviconTag } from "./types";
2
+ export declare function renderMetaTagsToString(data: SeoOrFaviconTag[]): string;
@@ -0,0 +1,37 @@
1
+ export interface SeoTitleTag {
2
+ tag: 'title';
3
+ content: string | null;
4
+ attributes?: null;
5
+ }
6
+ export interface RegularMetaAttributes {
7
+ name: string;
8
+ content: string;
9
+ }
10
+ export interface OgMetaAttributes {
11
+ property: string;
12
+ content: string;
13
+ }
14
+ export interface SeoMetaTag {
15
+ tag: 'meta';
16
+ content?: null;
17
+ attributes: RegularMetaAttributes | OgMetaAttributes;
18
+ }
19
+ export interface FaviconAttributes {
20
+ sizes: string;
21
+ type: string;
22
+ rel: string;
23
+ href: string;
24
+ }
25
+ export interface AppleTouchIconAttributes {
26
+ sizes: string;
27
+ rel: 'apple-touch-icon';
28
+ href: string;
29
+ }
30
+ export interface SeoLinkTag {
31
+ tag: 'link';
32
+ content?: null;
33
+ attributes: FaviconAttributes | AppleTouchIconAttributes;
34
+ }
35
+ export declare type SeoTag = SeoTitleTag | SeoMetaTag;
36
+ export declare type FaviconTag = SeoMetaTag | SeoLinkTag;
37
+ export declare type SeoOrFaviconTag = SeoTag | FaviconTag;
@@ -1,7 +1,8 @@
1
- import { renderRule, TransformedMeta, TransformMetaFn } from "datocms-structured-text-generic-html-renderer";
2
- import { Record as StructuredTextGraphQlResponseRecord, Document as StructuredTextDocument, RenderError, RenderResult, RenderRule, Node, StructuredText as StructuredTextGraphQlResponse } from "datocms-structured-text-utils";
3
- import { ReactElement } from "react";
4
- export { renderRule, RenderError, };
1
+ import { renderNodeRule, renderMarkRule, TransformedMeta, TransformMetaFn, RenderMarkRule } from 'datocms-structured-text-generic-html-renderer';
2
+ import { Record as StructuredTextGraphQlResponseRecord, Document as StructuredTextDocument, RenderError, RenderResult, RenderRule, Node, StructuredText as StructuredTextGraphQlResponse } from 'datocms-structured-text-utils';
3
+ import { ReactElement } from 'react';
4
+ export { renderNodeRule, renderMarkRule, RenderError };
5
+ export { renderNodeRule as renderRule };
5
6
  export type { StructuredTextGraphQlResponse, StructuredTextDocument, StructuredTextGraphQlResponseRecord, };
6
7
  declare type AdapterReturn = ReactElement | string | null;
7
8
  export declare const defaultAdapter: {
@@ -27,8 +28,10 @@ declare type RenderBlockContext<R extends StructuredTextGraphQlResponseRecord> =
27
28
  export declare type StructuredTextPropTypes<R extends StructuredTextGraphQlResponseRecord> = {
28
29
  /** The actual field value you get from DatoCMS **/
29
30
  data: StructuredTextGraphQlResponse<R> | StructuredTextDocument | Node | null | undefined;
30
- /** A set of additional rules to convert the document to JSX **/
31
- customRules?: RenderRule<H, T, F>[];
31
+ /** A set of additional rules to convert nodes to JSX **/
32
+ customNodeRules?: RenderRule<H, T, F>[];
33
+ /** A set of additional rules to convert marks to JSX **/
34
+ customMarkRules?: RenderMarkRule<H, T, F>[];
32
35
  /** Fuction that converts an 'inlineItem' node into React **/
33
36
  renderInlineRecord?: (context: RenderInlineRecordContext<R>) => ReactElement | null;
34
37
  /** Fuction that converts an 'itemLink' node into React **/
@@ -43,5 +46,7 @@ export declare type StructuredTextPropTypes<R extends StructuredTextGraphQlRespo
43
46
  renderNode?: H;
44
47
  /** Function to use to generate a React.Fragment **/
45
48
  renderFragment?: F;
49
+ /** @deprecated use customNodeRules **/
50
+ customRules?: RenderRule<H, T, F>[];
46
51
  };
47
- export declare function StructuredText<R extends StructuredTextGraphQlResponseRecord>({ data, renderInlineRecord, renderLinkToRecord, renderBlock, renderText, renderNode, renderFragment, customRules, metaTransformer, }: StructuredTextPropTypes<R>): ReactElement | null;
52
+ export declare function StructuredText<R extends StructuredTextGraphQlResponseRecord>({ data, renderInlineRecord, renderLinkToRecord, renderBlock, renderText, renderNode, renderFragment, customMarkRules, customRules, customNodeRules, metaTransformer, }: StructuredTextPropTypes<R>): ReactElement | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-datocms",
3
- "version": "2.0.1",
3
+ "version": "2.2.0",
4
4
  "types": "dist/types/index.d.ts",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -75,7 +75,7 @@
75
75
  },
76
76
  "dependencies": {
77
77
  "datocms-listen": "^0.1.6",
78
- "datocms-structured-text-generic-html-renderer": "^1.1.0",
78
+ "datocms-structured-text-generic-html-renderer": "^1.3.0",
79
79
  "datocms-structured-text-utils": "^1.1.0",
80
80
  "intersection-observer": "^0.12.0",
81
81
  "react-intersection-observer": "^8.31.1",