react-datocms 2.1.2 → 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.
package/README.md CHANGED
@@ -15,8 +15,8 @@ A set of components and utilities to work faster with [DatoCMS](https://www.dato
15
15
  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
16
16
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
17
17
 
18
- - [Demos](#demos)
19
- - [Installation](#installation)
18
+ - [Demos](#demos)
19
+ - [Installation](#installation)
20
20
  - [Live real-time updates](#live-real-time-updates)
21
21
  - [Reference](#reference)
22
22
  - [Initialization options](#initialization-options)
@@ -659,19 +659,19 @@ For example:
659
659
 
660
660
  - For all possible node types, refer to the [list of typeguard functions defined in the main `structured-text` package](https://github.com/datocms/structured-text/tree/main/packages/utils#typescript-type-guards). The [DAST format documentation](https://www.datocms.com/docs/structured-text/dast) has additional details.
661
661
 
662
- In this case, you can easily override default rendering rules with the `customRules` prop.
662
+ In this case, you can easily override default rendering rules with the `customNodeRules` and `customMarkRules` props.
663
663
 
664
664
  ```jsx
665
- import { renderRule, StructuredText } from 'react-datocms';
665
+ import { renderNodeRule, renderMarkRule, StructuredText } from 'react-datocms';
666
666
  import { isHeading, isCode } from 'datocms-structured-text-utils';
667
667
  import { render as toPlainText } from 'datocms-structured-text-to-plain-text';
668
668
  import SyntaxHighlight from 'components/SyntaxHighlight';
669
669
 
670
670
  <StructuredText
671
671
  data={data.blogPost.content}
672
- customRules={[
672
+ customNodeRules={[
673
673
  // Add HTML anchors to heading levels for in-page navigation
674
- renderRule(isHeading, ({ node, children, key }) => {
674
+ renderNodeRule(isHeading, ({ node, children, key }) => {
675
675
  const HeadingTag = `h${node.level}`;
676
676
  const anchor = toPlainText(node)
677
677
  .toLowerCase()
@@ -687,7 +687,7 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
687
687
  }),
688
688
 
689
689
  // Use a custom syntax highlighter component for code blocks
690
- renderRule(isCode, ({ node, key }) => {
690
+ renderNodeRule(isCode, ({ node, key }) => {
691
691
  return (
692
692
  <SyntaxHighlight
693
693
  key={key}
@@ -699,7 +699,7 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
699
699
  }),
700
700
 
701
701
  // Apply different formatting to top-level paragraphs
702
- renderRule(
702
+ renderNodeRule(
703
703
  isParagraph,
704
704
  ({ adapter: { renderNode }, node, children, key, ancestors }) => {
705
705
  if (isRoot(ancestors[0])) {
@@ -719,6 +719,12 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
719
719
  },
720
720
  ),
721
721
  ]}
722
+ customMarkRules={[
723
+ // convert "strong" marks into <b> tags
724
+ renderMarkRule('strong', ({ mark, children, key }) => {
725
+ return <b key={key}>{children}</b>;
726
+ }),
727
+ ]}
722
728
  />;
723
729
  ```
724
730
 
@@ -733,7 +739,8 @@ Note: if you override the rules for `inline_item`, `item_link` or `block` nodes,
733
739
  | renderLinkToRecord | `({ record, children }) => ReactElement \| null` | Only required if document contains `itemLink` nodes | Convert an `itemLink` DAST node into React | `null` |
734
740
  | renderBlock | `({ record }) => ReactElement \| null` | Only required if document contains `block` nodes | Convert a `block` DAST node into React | `null` |
735
741
  | metaTransformer | `({ node, meta }) => Object \| null` | :x: | Transform `link` and `itemLink` meta property into HTML props | [See function](https://github.com/datocms/structured-text/blob/main/packages/generic-html-renderer/src/index.ts#L61) |
736
- | customRules | `Array<RenderRule>` | :x: | Customize how document is converted in JSX (use `renderRule()` to generate) | `null` |
742
+ | customNodeRules | `Array<RenderRule>` | :x: | Customize how nodes are converted in JSX (use `renderNodeRule()` to generate rules) | `null` |
743
+ | customMarkRules | `Array<RenderMarkRule>` | :x: | Customize how marks are converted in JSX (use `renderMarkRule()` to generate rules) | `null` |
737
744
  | renderText | `(text: string, key: string) => ReactElement \| string \| null` | :x: | Convert a simple string text into React | `(text) => text` |
738
745
 
739
746
  # Development
@@ -34,63 +34,75 @@ var enzyme_1 = require("enzyme");
34
34
  var React = __importStar(require("react"));
35
35
  var index_1 = require("../index");
36
36
  var datocms_structured_text_utils_1 = require("datocms-structured-text-utils");
37
- describe("StructuredText", function () {
38
- describe("with no value", function () {
39
- it("renders null", function () {
37
+ var datocms_structured_text_generic_html_renderer_1 = require("datocms-structured-text-generic-html-renderer");
38
+ describe('StructuredText', function () {
39
+ describe('with no value', function () {
40
+ it('renders null', function () {
40
41
  var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: null }));
41
42
  expect(wrapper).toMatchSnapshot();
42
43
  });
43
44
  });
44
- describe("simple dast /2", function () {
45
+ describe('simple dast /2', function () {
45
46
  var structuredText = {
46
- schema: "dast",
47
+ schema: 'dast',
47
48
  document: {
48
- type: "root",
49
+ type: 'root',
49
50
  children: [
50
51
  {
51
- type: "heading",
52
+ type: 'heading',
52
53
  level: 1,
53
54
  children: [
54
55
  {
55
- type: "span",
56
- value: "This\nis a "
56
+ type: 'span',
57
+ value: 'This\nis a '
57
58
  },
58
59
  {
59
- type: "span",
60
- marks: ["strong"],
61
- value: "title"
60
+ type: 'span',
61
+ marks: ['strong'],
62
+ value: 'title'
62
63
  },
63
64
  ]
64
65
  },
65
66
  ]
66
67
  }
67
68
  };
68
- describe("with default rules", function () {
69
- it("renders the document", function () {
69
+ describe('with default rules', function () {
70
+ it('renders the document', function () {
70
71
  var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: structuredText }));
71
72
  expect(wrapper).toMatchSnapshot();
72
73
  });
73
74
  });
75
+ describe('with custom mark rules', function () {
76
+ it('renders the document', function () {
77
+ var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: structuredText, customMarkRules: [
78
+ datocms_structured_text_generic_html_renderer_1.renderMarkRule('strong', function (_a) {
79
+ var children = _a.children, key = _a.key;
80
+ return (React.createElement("b", { key: key }, children));
81
+ }),
82
+ ] }));
83
+ expect(wrapper).toMatchSnapshot();
84
+ });
85
+ });
74
86
  });
75
- describe("simple dast with no links/blocks", function () {
87
+ describe('simple dast with no links/blocks', function () {
76
88
  var structuredText = {
77
89
  value: {
78
- schema: "dast",
90
+ schema: 'dast',
79
91
  document: {
80
- type: "root",
92
+ type: 'root',
81
93
  children: [
82
94
  {
83
- type: "heading",
95
+ type: 'heading',
84
96
  level: 1,
85
97
  children: [
86
98
  {
87
- type: "span",
88
- value: "This\nis a "
99
+ type: 'span',
100
+ value: 'This\nis a '
89
101
  },
90
102
  {
91
- type: "span",
92
- marks: ["strong"],
93
- value: "title"
103
+ type: 'span',
104
+ marks: ['strong'],
105
+ value: 'title'
94
106
  },
95
107
  ]
96
108
  },
@@ -98,18 +110,18 @@ describe("StructuredText", function () {
98
110
  }
99
111
  }
100
112
  };
101
- describe("with default rules", function () {
102
- it("renders the document", function () {
113
+ describe('with default rules', function () {
114
+ it('renders the document', function () {
103
115
  var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: structuredText }));
104
116
  expect(wrapper).toMatchSnapshot();
105
117
  });
106
118
  });
107
- describe("with custom rules", function () {
108
- it("renders the document", function () {
119
+ describe('with custom rules', function () {
120
+ it('renders the document', function () {
109
121
  var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: structuredText, renderText: function (text, key) {
110
- return (React.createElement(React.Fragment, { key: key }, text.replace(/This/, "That")));
111
- }, customRules: [
112
- index_1.renderRule(datocms_structured_text_utils_1.isHeading, function (_a) {
122
+ return (React.createElement(React.Fragment, { key: key }, text.replace(/This/, 'That')));
123
+ }, customNodeRules: [
124
+ index_1.renderNodeRule(datocms_structured_text_utils_1.isHeading, function (_a) {
113
125
  var renderNode = _a.adapter.renderNode, node = _a.node, children = _a.children, key = _a.key;
114
126
  return renderNode("h" + (node.level + 1), { key: key }, children);
115
127
  }),
@@ -118,70 +130,68 @@ describe("StructuredText", function () {
118
130
  });
119
131
  });
120
132
  });
121
- describe("with links/blocks", function () {
133
+ describe('with links/blocks', function () {
122
134
  var structuredText = {
123
135
  value: {
124
- schema: "dast",
136
+ schema: 'dast',
125
137
  document: {
126
- type: "root",
138
+ type: 'root',
127
139
  children: [
128
140
  {
129
- type: "heading",
141
+ type: 'heading',
130
142
  level: 1,
131
143
  children: [
132
144
  {
133
- type: "span",
134
- value: "This is a"
145
+ type: 'span',
146
+ value: 'This is a'
135
147
  },
136
148
  {
137
- type: "span",
138
- marks: ["highlight"],
139
- value: "title"
149
+ type: 'span',
150
+ marks: ['highlight'],
151
+ value: 'title'
140
152
  },
141
153
  {
142
- type: "inlineItem",
143
- item: "123"
154
+ type: 'inlineItem',
155
+ item: '123'
144
156
  },
145
157
  {
146
- type: "itemLink",
147
- item: "123",
148
- meta: [
149
- { id: 'target', value: '_blank' },
150
- ],
151
- children: [{ type: "span", value: "here!" }]
158
+ type: 'itemLink',
159
+ item: '123',
160
+ meta: [{ id: 'target', value: '_blank' }],
161
+ children: [{ type: 'span', value: 'here!' }]
152
162
  },
153
163
  ]
154
164
  },
155
165
  {
156
- type: "block",
157
- item: "456"
166
+ type: 'block',
167
+ item: '456'
158
168
  },
159
169
  ]
160
170
  }
161
171
  },
162
172
  blocks: [
163
173
  {
164
- id: "456",
165
- __typename: "QuoteRecord",
166
- quote: "Foo bar.",
167
- author: "Mark Smith"
174
+ id: '456',
175
+ __typename: 'QuoteRecord',
176
+ quote: 'Foo bar.',
177
+ author: 'Mark Smith'
168
178
  },
169
179
  ],
170
180
  links: [
171
181
  {
172
- id: "123",
173
- __typename: "DocPageRecord",
174
- title: "How to code",
175
- slug: "how-to-code"
182
+ id: '123',
183
+ __typename: 'DocPageRecord',
184
+ title: 'How to code',
185
+ slug: 'how-to-code'
176
186
  },
177
187
  ]
178
188
  };
179
- describe("with default rules", function () {
180
- it("renders the document", function () {
189
+ describe('with default rules', function () {
190
+ it('renders the document', function () {
181
191
  var wrapper = enzyme_1.mount(React.createElement(index_1.StructuredText, { data: structuredText, renderInlineRecord: function (_a) {
182
192
  var record = _a.record;
183
193
  switch (record.__typename) {
184
- case "DocPageRecord":
194
+ case 'DocPageRecord':
185
195
  return React.createElement("a", { href: "/docs/" + record.slug }, record.title);
186
196
  default:
187
197
  return null;
@@ -189,15 +199,15 @@ describe("StructuredText", function () {
189
199
  }, renderLinkToRecord: function (_a) {
190
200
  var record = _a.record, children = _a.children, transformedMeta = _a.transformedMeta;
191
201
  switch (record.__typename) {
192
- case "DocPageRecord":
193
- return React.createElement("a", __assign({}, transformedMeta, { href: "/docs/" + record.slug }), children);
202
+ case 'DocPageRecord':
203
+ return (React.createElement("a", __assign({}, transformedMeta, { href: "/docs/" + record.slug }), children));
194
204
  default:
195
205
  return null;
196
206
  }
197
207
  }, renderBlock: function (_a) {
198
208
  var record = _a.record;
199
209
  switch (record.__typename) {
200
- case "QuoteRecord":
210
+ case 'QuoteRecord':
201
211
  return (React.createElement("figure", null,
202
212
  React.createElement("blockquote", null, record.quote),
203
213
  React.createElement("figcaption", null, record.author)));
@@ -208,15 +218,15 @@ describe("StructuredText", function () {
208
218
  expect(wrapper).toMatchSnapshot();
209
219
  });
210
220
  });
211
- describe("with missing renderInlineRecord prop", function () {
212
- it("raises an error", function () {
221
+ describe('with missing renderInlineRecord prop', function () {
222
+ it('raises an error', function () {
213
223
  expect(function () {
214
224
  enzyme_1.shallow(React.createElement(index_1.StructuredText, { data: structuredText }));
215
225
  }).toThrow(index_1.RenderError);
216
226
  });
217
227
  });
218
- describe("with missing record", function () {
219
- it("raises an error", function () {
228
+ describe('with missing record', function () {
229
+ it('raises an error', function () {
220
230
  expect(function () {
221
231
  enzyme_1.shallow(React.createElement(index_1.StructuredText, { data: __assign(__assign({}, structuredText), { links: [] }), renderInlineRecord: function () {
222
232
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/StructuredText/__tests__/index.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/StructuredText/__tests__/index.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgD;AAChD,2CAA+B;AAC/B,kCAMkB;AAClB,+EAA0D;AAC1D,+GAA+E;AAE/E,QAAQ,CAAC,gBAAgB,EAAE;IACzB,QAAQ,CAAC,eAAe,EAAE;QACxB,EAAE,CAAC,cAAc,EAAE;YACjB,IAAM,OAAO,GAAG,cAAK,CAAC,oBAAC,sBAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC;YACtD,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE;QACzB,IAAM,cAAc,GAA2B;YAC7C,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE;gBACR,IAAI,EAAE,MAAM;gBACZ,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,CAAC;wBACR,QAAQ,EAAE;4BACR;gCACE,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,aAAa;6BACrB;4BACD;gCACE,IAAI,EAAE,MAAM;gCACZ,KAAK,EAAE,CAAC,QAAQ,CAAC;gCACjB,KAAK,EAAE,OAAO;6BACf;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,QAAQ,CAAC,oBAAoB,EAAE;YAC7B,EAAE,CAAC,sBAAsB,EAAE;gBACzB,IAAM,OAAO,GAAG,cAAK,CAAC,oBAAC,sBAAc,IAAC,IAAI,EAAE,cAAc,GAAI,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,wBAAwB,EAAE;YACjC,EAAE,CAAC,sBAAsB,EAAE;gBACzB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,sBAAc,IACb,IAAI,EAAE,cAAc,EACpB,eAAe,EAAE;wBACf,8DAAc,CAAC,QAAQ,EAAE,UAAC,EAAiB;gCAAf,QAAQ,cAAA,EAAE,GAAG,SAAA;4BAAO,OAAA,CAC9C,2BAAG,GAAG,EAAE,GAAG,IAAG,QAAQ,CAAK,CAC5B;wBAF+C,CAE/C,CAAC;qBACH,GACD,CACH,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE;QAC3C,IAAM,cAAc,GAAkC;YACpD,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE;oBACR,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,CAAC;4BACR,QAAQ,EAAE;gCACR;oCACE,IAAI,EAAE,MAAM;oCACZ,KAAK,EAAE,aAAa;iCACrB;gCACD;oCACE,IAAI,EAAE,MAAM;oCACZ,KAAK,EAAE,CAAC,QAAQ,CAAC;oCACjB,KAAK,EAAE,OAAO;iCACf;6BACF;yBACF;qBACF;iBACF;aACF;SACF,CAAC;QAEF,QAAQ,CAAC,oBAAoB,EAAE;YAC7B,EAAE,CAAC,sBAAsB,EAAE;gBACzB,IAAM,OAAO,GAAG,cAAK,CAAC,oBAAC,sBAAc,IAAC,IAAI,EAAE,cAAc,GAAI,CAAC,CAAC;gBAChE,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,mBAAmB,EAAE;YAC5B,EAAE,CAAC,sBAAsB,EAAE;gBACzB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,sBAAc,IACb,IAAI,EAAE,cAAc,EACpB,UAAU,EAAE,UAAC,IAAI,EAAE,GAAG;wBACpB,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,GAAG,IACrB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CACd,CAClB,CAAC;oBACJ,CAAC,EACD,eAAe,EAAE;wBACf,sBAAc,CACZ,yCAAS,EACT,UAAC,EAAgD;gCAAnC,UAAU,wBAAA,EAAI,IAAI,UAAA,EAAE,QAAQ,cAAA,EAAE,GAAG,SAAA;4BAC7C,OAAO,UAAU,CAAC,OAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAE,EAAE,EAAE,GAAG,KAAA,EAAE,EAAE,QAAQ,CAAC,CAAC;wBAC7D,CAAC,CACF;qBACF,GACD,CACH,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE;QAe5B,IAAM,cAAc,GAEhB;YACF,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM;gBACd,QAAQ,EAAE;oBACR,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE;wBACR;4BACE,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,CAAC;4BACR,QAAQ,EAAE;gCACR;oCACE,IAAI,EAAE,MAAM;oCACZ,KAAK,EAAE,WAAW;iCACnB;gCACD;oCACE,IAAI,EAAE,MAAM;oCACZ,KAAK,EAAE,CAAC,WAAW,CAAC;oCACpB,KAAK,EAAE,OAAO;iCACf;gCACD;oCACE,IAAI,EAAE,YAAY;oCAClB,IAAI,EAAE,KAAK;iCACZ;gCACD;oCACE,IAAI,EAAE,UAAU;oCAChB,IAAI,EAAE,KAAK;oCACX,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;oCACzC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;iCAC7C;6BACF;yBACF;wBACD;4BACE,IAAI,EAAE,OAAO;4BACb,IAAI,EAAE,KAAK;yBACZ;qBACF;iBACF;aACF;YACD,MAAM,EAAE;gBACN;oBACE,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,aAAa;oBACzB,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,YAAY;iBACrB;aACF;YACD,KAAK,EAAE;gBACL;oBACE,EAAE,EAAE,KAAK;oBACT,UAAU,EAAE,eAAe;oBAC3B,KAAK,EAAE,aAAa;oBACpB,IAAI,EAAE,aAAa;iBACpB;aACF;SACF,CAAC;QAEF,QAAQ,CAAC,oBAAoB,EAAE;YAC7B,EAAE,CAAC,sBAAsB,EAAE;gBACzB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,sBAAc,IACb,IAAI,EAAE,cAAc,EACpB,kBAAkB,EAAE,UAAC,EAAU;4BAAR,MAAM,YAAA;wBAC3B,QAAQ,MAAM,CAAC,UAAU,EAAE;4BACzB,KAAK,eAAe;gCAClB,OAAO,2BAAG,IAAI,EAAE,WAAS,MAAM,CAAC,IAAM,IAAG,MAAM,CAAC,KAAK,CAAK,CAAC;4BAC7D;gCACE,OAAO,IAAI,CAAC;yBACf;oBACH,CAAC,EACD,kBAAkB,EAAE,UAAC,EAAqC;4BAAnC,MAAM,YAAA,EAAE,QAAQ,cAAA,EAAE,eAAe,qBAAA;wBACtD,QAAQ,MAAM,CAAC,UAAU,EAAE;4BACzB,KAAK,eAAe;gCAClB,OAAO,CACL,sCAAO,eAAe,IAAE,IAAI,EAAE,WAAS,MAAM,CAAC,IAAM,KACjD,QAAQ,CACP,CACL,CAAC;4BACJ;gCACE,OAAO,IAAI,CAAC;yBACf;oBACH,CAAC,EACD,WAAW,EAAE,UAAC,EAAU;4BAAR,MAAM,YAAA;wBACpB,QAAQ,MAAM,CAAC,UAAU,EAAE;4BACzB,KAAK,aAAa;gCAChB,OAAO,CACL;oCACE,wCAAa,MAAM,CAAC,KAAK,CAAc;oCACvC,wCAAa,MAAM,CAAC,MAAM,CAAc,CACjC,CACV,CAAC;4BACJ;gCACE,OAAO,IAAI,CAAC;yBACf;oBACH,CAAC,GACD,CACH,CAAC;gBACF,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;YACpC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,sCAAsC,EAAE;YAC/C,EAAE,CAAC,iBAAiB,EAAE;gBACpB,MAAM,CAAC;oBACL,gBAAO,CAAC,oBAAC,sBAAc,IAAC,IAAI,EAAE,cAAc,GAAI,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAW,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,qBAAqB,EAAE;YAC9B,EAAE,CAAC,iBAAiB,EAAE;gBACpB,MAAM,CAAC;oBACL,gBAAO,CACL,oBAAC,sBAAc,IACb,IAAI,wBAAO,cAAc,KAAE,KAAK,EAAE,EAAE,KACpC,kBAAkB,EAAE;4BAClB,OAAO,IAAI,CAAC;wBACd,CAAC,GACD,CACH,CAAC;gBACJ,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAW,CAAC,CAAC;YAC1B,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -18,10 +18,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
18
18
  __setModuleDefault(result, mod);
19
19
  return result;
20
20
  };
21
+ var __spreadArray = (this && this.__spreadArray) || function (to, from) {
22
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
23
+ to[j] = from[i];
24
+ return to;
25
+ };
21
26
  exports.__esModule = true;
22
- exports.StructuredText = exports.appendKeyToValidElement = exports.defaultAdapter = exports.RenderError = exports.renderRule = void 0;
27
+ exports.StructuredText = exports.appendKeyToValidElement = exports.defaultAdapter = exports.renderRule = exports.RenderError = exports.renderMarkRule = exports.renderNodeRule = void 0;
23
28
  var datocms_structured_text_generic_html_renderer_1 = require("datocms-structured-text-generic-html-renderer");
24
- exports.renderRule = datocms_structured_text_generic_html_renderer_1.renderRule;
29
+ exports.renderNodeRule = datocms_structured_text_generic_html_renderer_1.renderNodeRule;
30
+ exports.renderRule = datocms_structured_text_generic_html_renderer_1.renderNodeRule;
31
+ exports.renderMarkRule = datocms_structured_text_generic_html_renderer_1.renderMarkRule;
25
32
  var datocms_structured_text_utils_1 = require("datocms-structured-text-utils");
26
33
  exports.RenderError = datocms_structured_text_utils_1.RenderError;
27
34
  var react_1 = __importStar(require("react"));
@@ -38,65 +45,73 @@ function appendKeyToValidElement(element, key) {
38
45
  }
39
46
  exports.appendKeyToValidElement = appendKeyToValidElement;
40
47
  function StructuredText(_a) {
41
- 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;
42
- var result = datocms_structured_text_generic_html_renderer_1.render({
43
- renderText: renderText || exports.defaultAdapter.renderText,
44
- renderNode: renderNode || exports.defaultAdapter.renderNode,
45
- renderFragment: renderFragment || exports.defaultAdapter.renderFragment
46
- }, data, [
47
- datocms_structured_text_generic_html_renderer_1.renderRule(datocms_structured_text_utils_1.isInlineItem, function (_a) {
48
- var node = _a.node, key = _a.key;
49
- if (!renderInlineRecord) {
50
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' prop is specified!", node);
51
- }
52
- if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.links) {
53
- throw new datocms_structured_text_utils_1.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);
54
- }
55
- var item = data.links.find(function (item) { return item.id === node.item; });
56
- if (!item) {
57
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
58
- }
59
- return appendKeyToValidElement(renderInlineRecord({ record: item }), key);
60
- }),
61
- datocms_structured_text_generic_html_renderer_1.renderRule(datocms_structured_text_utils_1.isItemLink, function (_a) {
62
- var node = _a.node, key = _a.key, children = _a.children;
63
- if (!renderLinkToRecord) {
64
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' prop is specified!", node);
65
- }
66
- if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.links) {
67
- throw new datocms_structured_text_utils_1.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);
68
- }
69
- var item = data.links.find(function (item) { return item.id === node.item; });
70
- if (!item) {
71
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'itemLink' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
72
- }
73
- return appendKeyToValidElement(renderLinkToRecord({
74
- record: item,
75
- children: children,
76
- transformedMeta: node.meta
77
- ? (metaTransformer || datocms_structured_text_generic_html_renderer_1.defaultMetaTransformer)({
78
- node: node,
79
- meta: node.meta
80
- })
81
- : null
82
- }), key);
83
- }),
84
- datocms_structured_text_generic_html_renderer_1.renderRule(datocms_structured_text_utils_1.isBlock, function (_a) {
85
- var node = _a.node, key = _a.key;
86
- if (!renderBlock) {
87
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains a 'block' node, but no 'renderBlock' prop is specified!", node);
88
- }
89
- if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.blocks) {
90
- throw new datocms_structured_text_utils_1.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);
91
- }
92
- var item = data.blocks.find(function (item) { return item.id === node.item; });
93
- if (!item) {
94
- throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains a 'block' node, but cannot find a record with ID " + node.item + " inside data.blocks!", node);
95
- }
96
- return appendKeyToValidElement(renderBlock({ record: item }), key);
97
- }),
98
- ].concat(customRules || []), metaTransformer);
99
- return result;
48
+ 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;
49
+ var result = datocms_structured_text_generic_html_renderer_1.render(data, {
50
+ adapter: {
51
+ renderText: renderText || exports.defaultAdapter.renderText,
52
+ renderNode: renderNode || exports.defaultAdapter.renderNode,
53
+ renderFragment: renderFragment || exports.defaultAdapter.renderFragment
54
+ },
55
+ metaTransformer: metaTransformer,
56
+ customMarkRules: customMarkRules,
57
+ customNodeRules: __spreadArray([
58
+ datocms_structured_text_generic_html_renderer_1.renderNodeRule(datocms_structured_text_utils_1.isInlineItem, function (_a) {
59
+ var node = _a.node, key = _a.key;
60
+ if (!renderInlineRecord) {
61
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'inlineItem' node, but no 'renderInlineRecord' prop is specified!", node);
62
+ }
63
+ if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.links) {
64
+ throw new datocms_structured_text_utils_1.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);
65
+ }
66
+ var item = data.links.find(function (item) { return item.id === node.item; });
67
+ if (!item) {
68
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'inlineItem' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
69
+ }
70
+ return appendKeyToValidElement(renderInlineRecord({ record: item }), key);
71
+ }),
72
+ datocms_structured_text_generic_html_renderer_1.renderNodeRule(datocms_structured_text_utils_1.isItemLink, function (_a) {
73
+ var node = _a.node, key = _a.key, children = _a.children;
74
+ if (!renderLinkToRecord) {
75
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'itemLink' node, but no 'renderLinkToRecord' prop is specified!", node);
76
+ }
77
+ if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.links) {
78
+ throw new datocms_structured_text_utils_1.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);
79
+ }
80
+ var item = data.links.find(function (item) { return item.id === node.item; });
81
+ if (!item) {
82
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains an 'itemLink' node, but cannot find a record with ID " + node.item + " inside data.links!", node);
83
+ }
84
+ return appendKeyToValidElement(renderLinkToRecord({
85
+ record: item,
86
+ children: children,
87
+ transformedMeta: node.meta
88
+ ? (metaTransformer || datocms_structured_text_generic_html_renderer_1.defaultMetaTransformer)({
89
+ node: node,
90
+ meta: node.meta
91
+ })
92
+ : null
93
+ }), key);
94
+ }),
95
+ datocms_structured_text_generic_html_renderer_1.renderNodeRule(datocms_structured_text_utils_1.isBlock, function (_a) {
96
+ var node = _a.node, key = _a.key;
97
+ if (!renderBlock) {
98
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains a 'block' node, but no 'renderBlock' prop is specified!", node);
99
+ }
100
+ if (!datocms_structured_text_utils_1.isStructuredText(data) || !data.blocks) {
101
+ throw new datocms_structured_text_utils_1.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);
102
+ }
103
+ var item = data.blocks.find(function (item) { return item.id === node.item; });
104
+ if (!item) {
105
+ throw new datocms_structured_text_utils_1.RenderError("The Structured Text document contains a 'block' node, but cannot find a record with ID " + node.item + " inside data.blocks!", node);
106
+ }
107
+ return appendKeyToValidElement(renderBlock({ record: item }), key);
108
+ })
109
+ ], (customNodeRules || customRules || []))
110
+ });
111
+ if (typeof result === 'string') {
112
+ return react_1["default"].createElement(react_1["default"].Fragment, null, result);
113
+ }
114
+ return result || null;
100
115
  }
101
116
  exports.StructuredText = StructuredText;
102
117
  //# 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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"}
@@ -9,67 +9,79 @@ var __assign = (this && this.__assign) || function () {
9
9
  };
10
10
  return __assign.apply(this, arguments);
11
11
  };
12
- import { mount, shallow } from "enzyme";
13
- import * as React from "react";
14
- import { StructuredText, RenderError, renderRule, } from "../index";
15
- import { isHeading } from "datocms-structured-text-utils";
16
- describe("StructuredText", function () {
17
- describe("with no value", function () {
18
- it("renders null", function () {
12
+ import { mount, shallow } from 'enzyme';
13
+ import * as React from 'react';
14
+ import { StructuredText, RenderError, renderNodeRule, } from '../index';
15
+ import { isHeading } from 'datocms-structured-text-utils';
16
+ import { renderMarkRule } from 'datocms-structured-text-generic-html-renderer';
17
+ describe('StructuredText', function () {
18
+ describe('with no value', function () {
19
+ it('renders null', function () {
19
20
  var wrapper = mount(React.createElement(StructuredText, { data: null }));
20
21
  expect(wrapper).toMatchSnapshot();
21
22
  });
22
23
  });
23
- describe("simple dast /2", function () {
24
+ describe('simple dast /2', function () {
24
25
  var structuredText = {
25
- schema: "dast",
26
+ schema: 'dast',
26
27
  document: {
27
- type: "root",
28
+ type: 'root',
28
29
  children: [
29
30
  {
30
- type: "heading",
31
+ type: 'heading',
31
32
  level: 1,
32
33
  children: [
33
34
  {
34
- type: "span",
35
- value: "This\nis a "
35
+ type: 'span',
36
+ value: 'This\nis a '
36
37
  },
37
38
  {
38
- type: "span",
39
- marks: ["strong"],
40
- value: "title"
39
+ type: 'span',
40
+ marks: ['strong'],
41
+ value: 'title'
41
42
  },
42
43
  ]
43
44
  },
44
45
  ]
45
46
  }
46
47
  };
47
- describe("with default rules", function () {
48
- it("renders the document", function () {
48
+ describe('with default rules', function () {
49
+ it('renders the document', function () {
49
50
  var wrapper = mount(React.createElement(StructuredText, { data: structuredText }));
50
51
  expect(wrapper).toMatchSnapshot();
51
52
  });
52
53
  });
54
+ describe('with custom mark rules', function () {
55
+ it('renders the document', function () {
56
+ var wrapper = mount(React.createElement(StructuredText, { data: structuredText, customMarkRules: [
57
+ renderMarkRule('strong', function (_a) {
58
+ var children = _a.children, key = _a.key;
59
+ return (React.createElement("b", { key: key }, children));
60
+ }),
61
+ ] }));
62
+ expect(wrapper).toMatchSnapshot();
63
+ });
64
+ });
53
65
  });
54
- describe("simple dast with no links/blocks", function () {
66
+ describe('simple dast with no links/blocks', function () {
55
67
  var structuredText = {
56
68
  value: {
57
- schema: "dast",
69
+ schema: 'dast',
58
70
  document: {
59
- type: "root",
71
+ type: 'root',
60
72
  children: [
61
73
  {
62
- type: "heading",
74
+ type: 'heading',
63
75
  level: 1,
64
76
  children: [
65
77
  {
66
- type: "span",
67
- value: "This\nis a "
78
+ type: 'span',
79
+ value: 'This\nis a '
68
80
  },
69
81
  {
70
- type: "span",
71
- marks: ["strong"],
72
- value: "title"
82
+ type: 'span',
83
+ marks: ['strong'],
84
+ value: 'title'
73
85
  },
74
86
  ]
75
87
  },
@@ -77,18 +89,18 @@ describe("StructuredText", function () {
77
89
  }
78
90
  }
79
91
  };
80
- describe("with default rules", function () {
81
- it("renders the document", function () {
92
+ describe('with default rules', function () {
93
+ it('renders the document', function () {
82
94
  var wrapper = mount(React.createElement(StructuredText, { data: structuredText }));
83
95
  expect(wrapper).toMatchSnapshot();
84
96
  });
85
97
  });
86
- describe("with custom rules", function () {
87
- it("renders the document", function () {
98
+ describe('with custom rules', function () {
99
+ it('renders the document', function () {
88
100
  var wrapper = mount(React.createElement(StructuredText, { data: structuredText, renderText: function (text, key) {
89
- return (React.createElement(React.Fragment, { key: key }, text.replace(/This/, "That")));
90
- }, customRules: [
91
- renderRule(isHeading, function (_a) {
101
+ return (React.createElement(React.Fragment, { key: key }, text.replace(/This/, 'That')));
102
+ }, customNodeRules: [
103
+ renderNodeRule(isHeading, function (_a) {
92
104
  var renderNode = _a.adapter.renderNode, node = _a.node, children = _a.children, key = _a.key;
93
105
  return renderNode("h" + (node.level + 1), { key: key }, children);
94
106
  }),
@@ -97,70 +109,68 @@ describe("StructuredText", function () {
97
109
  });
98
110
  });
99
111
  });
100
- describe("with links/blocks", function () {
112
+ describe('with links/blocks', function () {
101
113
  var structuredText = {
102
114
  value: {
103
- schema: "dast",
115
+ schema: 'dast',
104
116
  document: {
105
- type: "root",
117
+ type: 'root',
106
118
  children: [
107
119
  {
108
- type: "heading",
120
+ type: 'heading',
109
121
  level: 1,
110
122
  children: [
111
123
  {
112
- type: "span",
113
- value: "This is a"
124
+ type: 'span',
125
+ value: 'This is a'
114
126
  },
115
127
  {
116
- type: "span",
117
- marks: ["highlight"],
118
- value: "title"
128
+ type: 'span',
129
+ marks: ['highlight'],
130
+ value: 'title'
119
131
  },
120
132
  {
121
- type: "inlineItem",
122
- item: "123"
133
+ type: 'inlineItem',
134
+ item: '123'
123
135
  },
124
136
  {
125
- type: "itemLink",
126
- item: "123",
127
- meta: [
128
- { id: 'target', value: '_blank' },
129
- ],
130
- children: [{ type: "span", value: "here!" }]
137
+ type: 'itemLink',
138
+ item: '123',
139
+ meta: [{ id: 'target', value: '_blank' }],
140
+ children: [{ type: 'span', value: 'here!' }]
131
141
  },
132
142
  ]
133
143
  },
134
144
  {
135
- type: "block",
136
- item: "456"
145
+ type: 'block',
146
+ item: '456'
137
147
  },
138
148
  ]
139
149
  }
140
150
  },
141
151
  blocks: [
142
152
  {
143
- id: "456",
144
- __typename: "QuoteRecord",
145
- quote: "Foo bar.",
146
- author: "Mark Smith"
153
+ id: '456',
154
+ __typename: 'QuoteRecord',
155
+ quote: 'Foo bar.',
156
+ author: 'Mark Smith'
147
157
  },
148
158
  ],
149
159
  links: [
150
160
  {
151
- id: "123",
152
- __typename: "DocPageRecord",
153
- title: "How to code",
154
- slug: "how-to-code"
161
+ id: '123',
162
+ __typename: 'DocPageRecord',
163
+ title: 'How to code',
164
+ slug: 'how-to-code'
155
165
  },
156
166
  ]
157
167
  };
158
- describe("with default rules", function () {
159
- it("renders the document", function () {
168
+ describe('with default rules', function () {
169
+ it('renders the document', function () {
160
170
  var wrapper = mount(React.createElement(StructuredText, { data: structuredText, renderInlineRecord: function (_a) {
161
171
  var record = _a.record;
162
172
  switch (record.__typename) {
163
- case "DocPageRecord":
173
+ case 'DocPageRecord':
164
174
  return React.createElement("a", { href: "/docs/" + record.slug }, record.title);
165
175
  default:
166
176
  return null;
@@ -168,15 +178,15 @@ describe("StructuredText", function () {
168
178
  }, renderLinkToRecord: function (_a) {
169
179
  var record = _a.record, children = _a.children, transformedMeta = _a.transformedMeta;
170
180
  switch (record.__typename) {
171
- case "DocPageRecord":
172
- return React.createElement("a", __assign({}, transformedMeta, { href: "/docs/" + record.slug }), children);
181
+ case 'DocPageRecord':
182
+ return (React.createElement("a", __assign({}, transformedMeta, { href: "/docs/" + record.slug }), children));
173
183
  default:
174
184
  return null;
175
185
  }
176
186
  }, renderBlock: function (_a) {
177
187
  var record = _a.record;
178
188
  switch (record.__typename) {
179
- case "QuoteRecord":
189
+ case 'QuoteRecord':
180
190
  return (React.createElement("figure", null,
181
191
  React.createElement("blockquote", null, record.quote),
182
192
  React.createElement("figcaption", null, record.author)));
@@ -187,15 +197,15 @@ describe("StructuredText", function () {
187
197
  expect(wrapper).toMatchSnapshot();
188
198
  });
189
199
  });
190
- describe("with missing renderInlineRecord prop", function () {
191
- it("raises an error", function () {
200
+ describe('with missing renderInlineRecord prop', function () {
201
+ it('raises an error', function () {
192
202
  expect(function () {
193
203
  shallow(React.createElement(StructuredText, { data: structuredText }));
194
204
  }).toThrow(RenderError);
195
205
  });
196
206
  });
197
- describe("with missing record", function () {
198
- it("raises an error", function () {
207
+ describe('with missing record', function () {
208
+ it('raises an error', function () {
199
209
  expect(function () {
200
210
  shallow(React.createElement(StructuredText, { data: __assign(__assign({}, structuredText), { links: [] }), renderInlineRecord: function () {
201
211
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/StructuredText/__tests__/index.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/StructuredText/__tests__/index.test.tsx"],"names":[],"mappings":"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"}
@@ -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;
@@ -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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"}
@@ -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.1.2",
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",