react-datocms 2.1.0 → 3.0.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 +73 -23
- package/dist/cjs/Image/__tests__/index.test.js +1 -0
- package/dist/cjs/Image/__tests__/index.test.js.map +1 -1
- package/dist/cjs/Image/index.js +2 -2
- package/dist/cjs/Image/index.js.map +1 -1
- package/dist/cjs/Seo/__tests__/index.test.js +0 -5
- package/dist/cjs/Seo/__tests__/index.test.js.map +1 -1
- package/dist/cjs/Seo/remixUtils.js +1 -10
- package/dist/cjs/Seo/remixUtils.js.map +1 -1
- package/dist/cjs/StructuredText/__tests__/index.test.js +77 -67
- package/dist/cjs/StructuredText/__tests__/index.test.js.map +1 -1
- package/dist/cjs/StructuredText/index.js +76 -61
- package/dist/cjs/StructuredText/index.js.map +1 -1
- package/dist/cjs/useQuerySubscription/index.js +1 -1
- package/dist/cjs/useQuerySubscription/index.js.map +1 -1
- package/dist/esm/Image/__tests__/index.test.d.ts +1 -1
- package/dist/esm/Image/__tests__/index.test.js +1 -0
- package/dist/esm/Image/__tests__/index.test.js.map +1 -1
- package/dist/esm/Image/index.d.ts +0 -1
- package/dist/esm/Image/index.js +2 -2
- package/dist/esm/Image/index.js.map +1 -1
- package/dist/esm/Seo/__tests__/index.test.js +1 -6
- package/dist/esm/Seo/__tests__/index.test.js.map +1 -1
- package/dist/esm/Seo/remixUtils.d.ts +0 -18
- package/dist/esm/Seo/remixUtils.js +0 -8
- package/dist/esm/Seo/remixUtils.js.map +1 -1
- package/dist/esm/StructuredText/__tests__/index.test.js +81 -71
- package/dist/esm/StructuredText/__tests__/index.test.js.map +1 -1
- package/dist/esm/StructuredText/index.d.ts +12 -7
- package/dist/esm/StructuredText/index.js +78 -63
- package/dist/esm/StructuredText/index.js.map +1 -1
- package/dist/esm/useQuerySubscription/index.js +1 -1
- package/dist/esm/useQuerySubscription/index.js.map +1 -1
- package/dist/types/Image/__tests__/index.test.d.ts +1 -1
- package/dist/types/Image/index.d.ts +0 -1
- package/dist/types/Seo/remixUtils.d.ts +0 -18
- package/dist/types/StructuredText/index.d.ts +12 -7
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ A set of components and utilities to work faster with [DatoCMS](https://www.dato
|
|
|
33
33
|
- [Social share, SEO and Favicon meta tags](#social-share-seo-and-favicon-meta-tags)
|
|
34
34
|
- [`renderMetaTags()`](#rendermetatags)
|
|
35
35
|
- [`renderMetaTagsToString()`](#rendermetatagstostring)
|
|
36
|
-
- [`toRemixMeta()`
|
|
36
|
+
- [`toRemixMeta()`](#toremixmeta)
|
|
37
37
|
- [Structured text](#structured-text)
|
|
38
38
|
- [Basic usage](#basic-usage)
|
|
39
39
|
- [Custom renderers for inline records, blocks, and links](#custom-renderers-for-inline-records-blocks-and-links)
|
|
@@ -163,9 +163,7 @@ const App: React.FC = () => {
|
|
|
163
163
|
`<Image />` is a React component specially designed to work seamlessly with DatoCMS’s [`responsiveImage` GraphQL query](https://www.datocms.com/docs/content-delivery-api/uploads#responsive-images) that optimizes image loading for your sites.
|
|
164
164
|
|
|
165
165
|
- TypeScript ready;
|
|
166
|
-
- Compatible with IE11;
|
|
167
166
|
- CSS-in-JS ready;
|
|
168
|
-
- Compatible with any GraphQL library (Apollo, graphql-hooks, graphql-request, etc.);
|
|
169
167
|
- Usable both client and server side;
|
|
170
168
|
- Compatible with vanilla React, Next.js and pretty much any other React-based solution;
|
|
171
169
|
|
|
@@ -173,11 +171,17 @@ const App: React.FC = () => {
|
|
|
173
171
|
|
|
174
172
|
## Out-of-the-box features
|
|
175
173
|
|
|
176
|
-
-
|
|
177
|
-
-
|
|
178
|
-
- Efficiently lazy
|
|
179
|
-
-
|
|
180
|
-
-
|
|
174
|
+
- Offers WebP version of images for browsers that support the format
|
|
175
|
+
- Generates multiple smaller images so smartphones and tablets don’t download desktop-sized images
|
|
176
|
+
- Efficiently lazy loads images to speed initial page load and save bandwidth
|
|
177
|
+
- Holds the image position so your page doesn’t jump while images load
|
|
178
|
+
- Uses either blur-up or background color techniques to show a preview of the image while it loads
|
|
179
|
+
|
|
180
|
+
## Intersection Observer
|
|
181
|
+
|
|
182
|
+
Intersection Observer is the API used to determine if the image is inside the viewport or not. [Browser support is really good](https://caniuse.com/intersectionobserver) - With Safari adding support in 12.1, all major browsers now support Intersection Observers natively.
|
|
183
|
+
|
|
184
|
+
If the IntersectionObserver object is not available, the component treats the image as it's always visible in the viewport. Feel free to add a [polyfill](https://www.npmjs.com/package/intersection-observer) so that it will also 100% work on older versions of iOS and IE11.
|
|
181
185
|
|
|
182
186
|
## Usage
|
|
183
187
|
|
|
@@ -377,21 +381,60 @@ const someMoreComplexHtml = `
|
|
|
377
381
|
`;
|
|
378
382
|
```
|
|
379
383
|
|
|
380
|
-
## `toRemixMeta()`
|
|
384
|
+
## `toRemixMeta()`
|
|
381
385
|
|
|
382
|
-
|
|
386
|
+
This function generates a `HtmlMetaDescriptor` object, compatibile with the [`meta`](https://remix.run/docs/en/v1.1.1/api/conventions#meta) export of the [Remix](https://remix.run/) framework:
|
|
383
387
|
|
|
384
388
|
```js
|
|
385
|
-
import type {
|
|
386
|
-
import {
|
|
389
|
+
import type { MetaFunction } from 'remix';
|
|
390
|
+
import { toRemixMeta } from 'react-datocms';
|
|
387
391
|
|
|
388
|
-
export const
|
|
389
|
-
return
|
|
392
|
+
export const meta: MetaFunction = ({ data: { post } }) => {
|
|
393
|
+
return toRemixMeta(post.seo);
|
|
390
394
|
};
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
Please note that the [`links`](https://remix.run/docs/en/v1.1.1/api/conventions#links) export [doesn't receive any loader data](https://github.com/remix-run/remix/issues/32) for performance reasons, so you cannot use it to declare favicons meta tags! The best way to render them is using `renderMetaTags` in your root component:
|
|
391
398
|
|
|
392
|
-
|
|
393
|
-
|
|
399
|
+
```jsx
|
|
400
|
+
import { renderMetaTags } from 'react-datocms';
|
|
401
|
+
|
|
402
|
+
export const loader = () => {
|
|
403
|
+
return request({
|
|
404
|
+
query: `
|
|
405
|
+
{
|
|
406
|
+
site: _site {
|
|
407
|
+
favicon: faviconMetaTags(variants: [icon, msApplication, appleTouchIcon]) {
|
|
408
|
+
...metaTagsFragment
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
${metaTagsFragment}
|
|
413
|
+
`,
|
|
414
|
+
});
|
|
394
415
|
};
|
|
416
|
+
|
|
417
|
+
export default function App() {
|
|
418
|
+
const { site } = useLoaderData();
|
|
419
|
+
|
|
420
|
+
return (
|
|
421
|
+
<html lang="en">
|
|
422
|
+
<head>
|
|
423
|
+
<meta charSet="utf-8" />
|
|
424
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
425
|
+
<Meta />
|
|
426
|
+
<Links />
|
|
427
|
+
{renderMetaTags(site.favicon)}
|
|
428
|
+
</head>
|
|
429
|
+
<body>
|
|
430
|
+
<Outlet />
|
|
431
|
+
<ScrollRestoration />
|
|
432
|
+
<Scripts />
|
|
433
|
+
{process.env.NODE_ENV === 'development' && <LiveReload />}
|
|
434
|
+
</body>
|
|
435
|
+
</html>
|
|
436
|
+
);
|
|
437
|
+
}
|
|
395
438
|
```
|
|
396
439
|
|
|
397
440
|
# Structured text
|
|
@@ -620,19 +663,19 @@ For example:
|
|
|
620
663
|
|
|
621
664
|
- 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.
|
|
622
665
|
|
|
623
|
-
In this case, you can easily override default rendering rules with the `
|
|
666
|
+
In this case, you can easily override default rendering rules with the `customNodeRules` and `customMarkRules` props.
|
|
624
667
|
|
|
625
668
|
```jsx
|
|
626
|
-
import {
|
|
669
|
+
import { renderNodeRule, renderMarkRule, StructuredText } from 'react-datocms';
|
|
627
670
|
import { isHeading, isCode } from 'datocms-structured-text-utils';
|
|
628
671
|
import { render as toPlainText } from 'datocms-structured-text-to-plain-text';
|
|
629
672
|
import SyntaxHighlight from 'components/SyntaxHighlight';
|
|
630
673
|
|
|
631
674
|
<StructuredText
|
|
632
675
|
data={data.blogPost.content}
|
|
633
|
-
|
|
676
|
+
customNodeRules={[
|
|
634
677
|
// Add HTML anchors to heading levels for in-page navigation
|
|
635
|
-
|
|
678
|
+
renderNodeRule(isHeading, ({ node, children, key }) => {
|
|
636
679
|
const HeadingTag = `h${node.level}`;
|
|
637
680
|
const anchor = toPlainText(node)
|
|
638
681
|
.toLowerCase()
|
|
@@ -648,7 +691,7 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
|
|
|
648
691
|
}),
|
|
649
692
|
|
|
650
693
|
// Use a custom syntax highlighter component for code blocks
|
|
651
|
-
|
|
694
|
+
renderNodeRule(isCode, ({ node, key }) => {
|
|
652
695
|
return (
|
|
653
696
|
<SyntaxHighlight
|
|
654
697
|
key={key}
|
|
@@ -660,7 +703,7 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
|
|
|
660
703
|
}),
|
|
661
704
|
|
|
662
705
|
// Apply different formatting to top-level paragraphs
|
|
663
|
-
|
|
706
|
+
renderNodeRule(
|
|
664
707
|
isParagraph,
|
|
665
708
|
({ adapter: { renderNode }, node, children, key, ancestors }) => {
|
|
666
709
|
if (isRoot(ancestors[0])) {
|
|
@@ -680,6 +723,12 @@ import SyntaxHighlight from 'components/SyntaxHighlight';
|
|
|
680
723
|
},
|
|
681
724
|
),
|
|
682
725
|
]}
|
|
726
|
+
customMarkRules={[
|
|
727
|
+
// convert "strong" marks into <b> tags
|
|
728
|
+
renderMarkRule('strong', ({ mark, children, key }) => {
|
|
729
|
+
return <b key={key}>{children}</b>;
|
|
730
|
+
}),
|
|
731
|
+
]}
|
|
683
732
|
/>;
|
|
684
733
|
```
|
|
685
734
|
|
|
@@ -694,7 +743,8 @@ Note: if you override the rules for `inline_item`, `item_link` or `block` nodes,
|
|
|
694
743
|
| renderLinkToRecord | `({ record, children }) => ReactElement \| null` | Only required if document contains `itemLink` nodes | Convert an `itemLink` DAST node into React | `null` |
|
|
695
744
|
| renderBlock | `({ record }) => ReactElement \| null` | Only required if document contains `block` nodes | Convert a `block` DAST node into React | `null` |
|
|
696
745
|
| 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) |
|
|
697
|
-
|
|
|
746
|
+
| customNodeRules | `Array<RenderRule>` | :x: | Customize how nodes are converted in JSX (use `renderNodeRule()` to generate rules) | `null` |
|
|
747
|
+
| customMarkRules | `Array<RenderMarkRule>` | :x: | Customize how marks are converted in JSX (use `renderMarkRule()` to generate rules) | `null` |
|
|
698
748
|
| renderText | `(text: string, key: string) => ReactElement \| string \| null` | :x: | Convert a simple string text into React | `(text) => text` |
|
|
699
749
|
|
|
700
750
|
# Development
|
|
@@ -21,6 +21,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
21
21
|
exports.__esModule = true;
|
|
22
22
|
var React = __importStar(require("react"));
|
|
23
23
|
var enzyme_1 = require("enzyme");
|
|
24
|
+
require("intersection-observer");
|
|
24
25
|
var index_1 = require("../index");
|
|
25
26
|
var test_utils_1 = require("react-intersection-observer/test-utils");
|
|
26
27
|
var data = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/Image/__tests__/index.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,iCAA+B;AAC/B,kCAAiC;AACjC,qEAA+E;AAE/E,IAAM,IAAI,GAAG;IACX,GAAG,EAAE,cAAc;IACnB,WAAW,EAAE,kBAAkB;IAC/B,MAAM,EACJ,igBAAigB;IACngB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,iCAAiC;IACxC,GAAG,EAAE,uEAAuE;IAC5E,MAAM,EACJ,8pBAA8pB;IAChqB,KAAK,EAAE,kCAAkC;IACzC,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE;IAChB,sDAAsD;IACtD,iFAAiF;IACjF,wDAAwD;IAEvD,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAW,CAAC,OAAO,CAAC,UAAC,MAAM;QACrE,QAAQ,CAAC,YAAU,MAAQ,EAAE;YAC3B,QAAQ,CAAC,aAAa,EAAE;gBACtB,EAAE,CAAC,2BAA2B,EAAE;oBAC9B,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;oBACF,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,SAAS,EAAE;gBAClB,EAAE,CAAC,mBAAmB,EAAE;oBACtB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;oBACF,kCAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,cAAc,EAAE;oBACvB,EAAE,CAAC,iBAAiB,EAAE;wBACpB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;wBACF,kCAAqB,CAAC,IAAI,CAAC,CAAC;wBAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC5C,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/Image/__tests__/index.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,iCAA+B;AAC/B,iCAA+B;AAC/B,kCAAiC;AACjC,qEAA+E;AAE/E,IAAM,IAAI,GAAG;IACX,GAAG,EAAE,cAAc;IACnB,WAAW,EAAE,kBAAkB;IAC/B,MAAM,EACJ,igBAAigB;IACngB,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,iCAAiC;IACxC,GAAG,EAAE,uEAAuE;IAC5E,MAAM,EACJ,8pBAA8pB;IAChqB,KAAK,EAAE,kCAAkC;IACzC,KAAK,EAAE,GAAG;CACX,CAAC;AAEF,QAAQ,CAAC,OAAO,EAAE;IAChB,sDAAsD;IACtD,iFAAiF;IACjF,wDAAwD;IAEvD,CAAC,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,CAAW,CAAC,OAAO,CAAC,UAAC,MAAM;QACrE,QAAQ,CAAC,YAAU,MAAQ,EAAE;YAC3B,QAAQ,CAAC,aAAa,EAAE;gBACtB,EAAE,CAAC,2BAA2B,EAAE;oBAC9B,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;oBACF,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,QAAQ,CAAC,SAAS,EAAE;gBAClB,EAAE,CAAC,mBAAmB,EAAE;oBACtB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;oBACF,kCAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpC,CAAC,CAAC,CAAC;gBAEH,QAAQ,CAAC,cAAc,EAAE;oBACvB,EAAE,CAAC,iBAAiB,EAAE;wBACpB,IAAM,OAAO,GAAG,cAAK,CACnB,oBAAC,aAAK,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,qBAAqB,EAAE,GAAG,GAAI,CAClE,CAAC;wBACF,kCAAqB,CAAC,IAAI,CAAC,CAAC;wBAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC5C,OAAO,CAAC,MAAM,EAAE,CAAC;wBACjB,MAAM,CAAC,OAAO,CAAC,CAAC,eAAe,EAAE,CAAC;oBACpC,CAAC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/cjs/Image/index.js
CHANGED
|
@@ -32,7 +32,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
32
32
|
exports.__esModule = true;
|
|
33
33
|
exports.Image = void 0;
|
|
34
34
|
var react_1 = __importStar(require("react"));
|
|
35
|
-
require("intersection-observer");
|
|
36
35
|
var react_intersection_observer_1 = require("react-intersection-observer");
|
|
37
36
|
var isSsr = typeof window === 'undefined';
|
|
38
37
|
var universalBtoa = isSsr
|
|
@@ -78,7 +77,8 @@ exports.Image = react_1.forwardRef(function (_a, ref) {
|
|
|
78
77
|
var _h = react_intersection_observer_1.useInView({
|
|
79
78
|
threshold: intersectionThreshold || intersectionTreshold || 0,
|
|
80
79
|
rootMargin: intersectionMargin || '0px 0px 0px 0px',
|
|
81
|
-
triggerOnce: true
|
|
80
|
+
triggerOnce: true,
|
|
81
|
+
fallbackInView: true
|
|
82
82
|
}), viewRef = _h[0], inView = _h[1];
|
|
83
83
|
var callbackRef = react_1.useCallback(function (_ref) {
|
|
84
84
|
viewRef(_ref);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Image/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgF;AAChF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Image/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAgF;AAChF,2EAAwD;AAExD,IAAM,KAAK,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;AAC5C,IAAM,aAAa,GAAG,KAAK;IACzB,CAAC,CAAC,UAAC,GAAW,IAAK,OAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAxD,CAAwD;IAC3E,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;AAEhB,IAAM,+BAA+B,GAAG,KAAK;IAC3C,CAAC,CAAC,KAAK;IACP,CAAC,CAAC,CAAC,CAAE,MAAc,CAAC,oBAAoB,CAAC;AA2E3C,IAAM,gBAAgB,GAAG,UAAC,EAAmC;QAAjC,QAAQ,cAAA,EAAE,MAAM,YAAA,EAAE,MAAM,YAAA;IAClD,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IAED,IAAI,+BAA+B,EAAE;QACnC,OAAO,MAAM,IAAI,MAAM,CAAC;KACzB;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,IAAM,iBAAiB,GAAG,UAAC,EAA2B;QAAzB,QAAQ,cAAA,EAAE,MAAM,YAAA;IAC3C,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,IAAI,CAAC;KACb;IAED,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,CAAC;KACd;IAED,IAAI,+BAA+B,EAAE;QACnC,OAAO,MAAM,CAAC;KACf;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEW,QAAA,KAAK,GAAG,kBAAU,CAC7B,UACE,EAgBC,EACD,GAAG;;QAhBD,SAAS,eAAA,EACT,sBAAoB,EAApB,cAAc,mBAAG,GAAG,KAAA,EACpB,oBAAoB,0BAAA,EACpB,qBAAqB,2BAAA,EACrB,kBAAkB,wBAAA,EAClB,gBAAgB,sBAAA,EAChB,gBAAe,EAAf,QAAQ,mBAAG,IAAI,KAAA,EACf,KAAK,WAAA,EACL,YAAY,kBAAA,EACZ,cAAoB,EAApB,MAAM,mBAAG,WAAW,KAAA,EACpB,SAAS,eAAA,EACT,cAAc,oBAAA,EACd,IAAI,UAAA,EACJ,MAAM,YAAA,EACN,sBAAqB,EAArB,cAAc,mBAAG,IAAI,KAAA;IAIjB,IAAA,KAAsB,gBAAQ,CAAC,KAAK,CAAC,EAApC,MAAM,QAAA,EAAE,SAAS,QAAmB,CAAC;IAE5C,IAAM,UAAU,GAAG;QACjB,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QACX,SAAS,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,CAAC;IAEI,IAAA,KAAoB,uCAAS,CAAC;QAClC,SAAS,EAAE,qBAAqB,IAAI,oBAAoB,IAAI,CAAC;QAC7D,UAAU,EAAE,kBAAkB,IAAI,iBAAiB;QACnD,WAAW,EAAE,IAAI;QACjB,cAAc,EAAE,IAAI;KACrB,CAAC,EALK,OAAO,QAAA,EAAE,MAAM,QAKpB,CAAC;IAEH,IAAM,WAAW,GAAG,mBAAW,CAC7B,UAAC,IAAoB;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,GAAG;YAAG,GAA8C,CAAC,OAAO,GAAG,IAAI,CAAC;IAC1E,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,IAAM,mBAAmB,GAAwB;QAC/C,QAAQ,EAAE,UAAU;QACpB,IAAI,EAAE,CAAC;QACP,GAAG,EAAE,CAAC;QACN,KAAK,EAAE,MAAM;QACb,MAAM,EAAE,MAAM;KACf,CAAC;IAEF,IAAM,QAAQ,GAAG,gBAAgB,CAAC;QAChC,QAAQ,UAAA;QACR,MAAM,QAAA;QACN,MAAM,QAAA;KACP,CAAC,CAAC;IACH,IAAM,SAAS,GAAG,iBAAiB,CAAC;QAClC,QAAQ,UAAA;QACR,MAAM,QAAA;QACN,MAAM,QAAA;KACP,CAAC,CAAC;IAEH,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CACpC,6CAAQ,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAC,YAAY,GAAG,CACzE,CAAC;IAEF,IAAM,aAAa,GAAG,IAAI,CAAC,MAAM,IAAI,CACnC,6CAAQ,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,GAAI,CACnD,CAAC;IAEF,IAAM,UAAU,GACd,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,aAAW,cAAc,OAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,IAAM,WAAW,GAAG,cAAc,CAAC,CAAC,CAAC,CACnC,0CACE,IAAI,EAAC,cAAc,EACnB,GAAG,EAAE,IAAI,CAAC,MAAM,EAChB,KAAK,aACH,eAAe,EAAE,IAAI,CAAC,OAAO,EAC7B,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,UAAU,YAAA;YACV,SAAS,WAAA;YACT,cAAc,gBAAA,IACX,mBAAmB,IAExB,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAED,IAAA,KAAK,GAAkB,IAAI,MAAtB,EAAE,WAAW,GAAK,IAAI,YAAT,CAAU;IACpC,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,GAAG,WAAW,CAAC;IAElD,IAAM,GAAG,GAAG,uDAAkD,KAAK,oBAAa,MAAM,cAAU,CAAC;IAEjG,IAAM,KAAK,GACT,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAClB,0CACE,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE;YACL,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,MAAM;SACd,EACD,GAAG,EAAE,+BAA6B,aAAa,CAAC,GAAG,CAAG,EACtD,IAAI,EAAC,cAAc,GACnB,CACH,CAAC,CAAC,CAAC,IAAI,CAAC;IAEX,OAAO,CACL,0CACE,GAAG,EAAE,WAAW,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,sBACH,QAAQ,EAAE,QAAQ,IACf,CAAC,MAAM,KAAK,MAAM;YACnB,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,MAAM,KAAK,WAAW;gBACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE;gBAC1D,CAAC,CAAC,MAAM,KAAK,OAAO;oBACpB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,OAAA,EAAE;oBACjC,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GACzC,KAAK;QAGT,KAAK;QACL,WAAW;QACX,QAAQ,IAAI,CACX;YACG,UAAU;YACV,aAAa;YACb,IAAI,CAAC,GAAG,IAAI,CACX,0CACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,+BACH,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC1B,UAAU,YAAA,IACP,mBAAmB,KACtB,SAAS,WAAA;oBACT,cAAc,gBAAA,KACX,YAAY,IAEjB,CACH,CACO,CACX;QACD;YACE;gBACG,UAAU;gBACV,aAAa;gBACb,IAAI,CAAC,GAAG,IAAI,CACX,0CACE,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,mCAAI,EAAE,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,wBAAO,mBAAmB,GAAK,YAAY,GAChD,OAAO,EAAC,MAAM,GACd,CACH,CACO,CACD,CACP,CACP,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -313,11 +313,6 @@ describe("renderMetaTagsToString", function () {
|
|
|
313
313
|
expect(__1.renderMetaTagsToString(metaTags)).toMatchSnapshot();
|
|
314
314
|
});
|
|
315
315
|
});
|
|
316
|
-
describe("toRemixLinks", function () {
|
|
317
|
-
it("generates an array of link descriptors", function () {
|
|
318
|
-
expect(__1.toRemixLinks(metaTags)).toMatchSnapshot();
|
|
319
|
-
});
|
|
320
|
-
});
|
|
321
316
|
describe("toRemixMeta", function () {
|
|
322
317
|
it("generates a meta descriptor", function () {
|
|
323
318
|
expect(__1.toRemixMeta(metaTags)).toMatchSnapshot();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/Seo/__tests__/index.test.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAA+B;AAC/B,iCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/Seo/__tests__/index.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ var __assign = (this && this.__assign) || function () {
|
|
|
11
11
|
return __assign.apply(this, arguments);
|
|
12
12
|
};
|
|
13
13
|
exports.__esModule = true;
|
|
14
|
-
exports.
|
|
14
|
+
exports.toRemixMeta = void 0;
|
|
15
15
|
function toRemixMeta(metaTags) {
|
|
16
16
|
if (!metaTags) {
|
|
17
17
|
return {};
|
|
@@ -30,13 +30,4 @@ function toRemixMeta(metaTags) {
|
|
|
30
30
|
}, {});
|
|
31
31
|
}
|
|
32
32
|
exports.toRemixMeta = toRemixMeta;
|
|
33
|
-
function toRemixLinks(metaTags) {
|
|
34
|
-
if (!metaTags) {
|
|
35
|
-
return [];
|
|
36
|
-
}
|
|
37
|
-
return metaTags
|
|
38
|
-
.filter(function (tag) { return tag.tag === 'link'; })
|
|
39
|
-
.map(function (tag) { return tag.attributes; });
|
|
40
|
-
}
|
|
41
|
-
exports.toRemixLinks = toRemixLinks;
|
|
42
33
|
//# sourceMappingURL=remixUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remixUtils.js","sourceRoot":"","sources":["../../../src/Seo/remixUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAiCA,SAAgB,WAAW,CACzB,QAAkC;IAElC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,EAAE,CAAC;KACX;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG;;QAC9B,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;YACvB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,uBAAM,GAAG,KAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAG,CAAC,CAAC,GAAG,CAAC;SAC3D;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE;YACtB,OAAO,GAAG,CAAC;SACZ;QAED,6BACK,GAAG,gBACL,UAAU,IAAI,GAAG,CAAC,UAAU;YAC3B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ;YACzB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAG,GAAG,CAAC,UAAU,CAAC,OAAO,OAChD;IACJ,CAAC,EAAE,EAA6B,CAAC,CAAC;AACpC,CAAC;AAvBD,kCAuBC
|
|
1
|
+
{"version":3,"file":"remixUtils.js","sourceRoot":"","sources":["../../../src/Seo/remixUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAiCA,SAAgB,WAAW,CACzB,QAAkC;IAElC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,EAAE,CAAC;KACX;IAED,OAAO,QAAQ,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG;;QAC9B,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO,EAAE;YACvB,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC,uBAAM,GAAG,KAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAG,CAAC,CAAC,GAAG,CAAC;SAC3D;QAED,IAAI,GAAG,CAAC,GAAG,KAAK,MAAM,EAAE;YACtB,OAAO,GAAG,CAAC;SACZ;QAED,6BACK,GAAG,gBACL,UAAU,IAAI,GAAG,CAAC,UAAU;YAC3B,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ;YACzB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAG,GAAG,CAAC,UAAU,CAAC,OAAO,OAChD;IACJ,CAAC,EAAE,EAA6B,CAAC,CAAC;AACpC,CAAC;AAvBD,kCAuBC"}
|
|
@@ -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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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(
|
|
45
|
+
describe('simple dast /2', function () {
|
|
45
46
|
var structuredText = {
|
|
46
|
-
schema:
|
|
47
|
+
schema: 'dast',
|
|
47
48
|
document: {
|
|
48
|
-
type:
|
|
49
|
+
type: 'root',
|
|
49
50
|
children: [
|
|
50
51
|
{
|
|
51
|
-
type:
|
|
52
|
+
type: 'heading',
|
|
52
53
|
level: 1,
|
|
53
54
|
children: [
|
|
54
55
|
{
|
|
55
|
-
type:
|
|
56
|
-
value:
|
|
56
|
+
type: 'span',
|
|
57
|
+
value: 'This\nis a '
|
|
57
58
|
},
|
|
58
59
|
{
|
|
59
|
-
type:
|
|
60
|
-
marks: [
|
|
61
|
-
value:
|
|
60
|
+
type: 'span',
|
|
61
|
+
marks: ['strong'],
|
|
62
|
+
value: 'title'
|
|
62
63
|
},
|
|
63
64
|
]
|
|
64
65
|
},
|
|
65
66
|
]
|
|
66
67
|
}
|
|
67
68
|
};
|
|
68
|
-
describe(
|
|
69
|
-
it(
|
|
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(
|
|
87
|
+
describe('simple dast with no links/blocks', function () {
|
|
76
88
|
var structuredText = {
|
|
77
89
|
value: {
|
|
78
|
-
schema:
|
|
90
|
+
schema: 'dast',
|
|
79
91
|
document: {
|
|
80
|
-
type:
|
|
92
|
+
type: 'root',
|
|
81
93
|
children: [
|
|
82
94
|
{
|
|
83
|
-
type:
|
|
95
|
+
type: 'heading',
|
|
84
96
|
level: 1,
|
|
85
97
|
children: [
|
|
86
98
|
{
|
|
87
|
-
type:
|
|
88
|
-
value:
|
|
99
|
+
type: 'span',
|
|
100
|
+
value: 'This\nis a '
|
|
89
101
|
},
|
|
90
102
|
{
|
|
91
|
-
type:
|
|
92
|
-
marks: [
|
|
93
|
-
value:
|
|
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(
|
|
102
|
-
it(
|
|
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(
|
|
108
|
-
it(
|
|
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/,
|
|
111
|
-
},
|
|
112
|
-
index_1.
|
|
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(
|
|
133
|
+
describe('with links/blocks', function () {
|
|
122
134
|
var structuredText = {
|
|
123
135
|
value: {
|
|
124
|
-
schema:
|
|
136
|
+
schema: 'dast',
|
|
125
137
|
document: {
|
|
126
|
-
type:
|
|
138
|
+
type: 'root',
|
|
127
139
|
children: [
|
|
128
140
|
{
|
|
129
|
-
type:
|
|
141
|
+
type: 'heading',
|
|
130
142
|
level: 1,
|
|
131
143
|
children: [
|
|
132
144
|
{
|
|
133
|
-
type:
|
|
134
|
-
value:
|
|
145
|
+
type: 'span',
|
|
146
|
+
value: 'This is a'
|
|
135
147
|
},
|
|
136
148
|
{
|
|
137
|
-
type:
|
|
138
|
-
marks: [
|
|
139
|
-
value:
|
|
149
|
+
type: 'span',
|
|
150
|
+
marks: ['highlight'],
|
|
151
|
+
value: 'title'
|
|
140
152
|
},
|
|
141
153
|
{
|
|
142
|
-
type:
|
|
143
|
-
item:
|
|
154
|
+
type: 'inlineItem',
|
|
155
|
+
item: '123'
|
|
144
156
|
},
|
|
145
157
|
{
|
|
146
|
-
type:
|
|
147
|
-
item:
|
|
148
|
-
meta: [
|
|
149
|
-
|
|
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:
|
|
157
|
-
item:
|
|
166
|
+
type: 'block',
|
|
167
|
+
item: '456'
|
|
158
168
|
},
|
|
159
169
|
]
|
|
160
170
|
}
|
|
161
171
|
},
|
|
162
172
|
blocks: [
|
|
163
173
|
{
|
|
164
|
-
id:
|
|
165
|
-
__typename:
|
|
166
|
-
quote:
|
|
167
|
-
author:
|
|
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:
|
|
173
|
-
__typename:
|
|
174
|
-
title:
|
|
175
|
-
slug:
|
|
182
|
+
id: '123',
|
|
183
|
+
__typename: 'DocPageRecord',
|
|
184
|
+
title: 'How to code',
|
|
185
|
+
slug: 'how-to-code'
|
|
176
186
|
},
|
|
177
187
|
]
|
|
178
188
|
};
|
|
179
|
-
describe(
|
|
180
|
-
it(
|
|
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
|
|
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
|
|
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
|
|
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(
|
|
212
|
-
it(
|
|
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(
|
|
219
|
-
it(
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgD;AAChD,2CAA+B;AAC/B,kCAMkB;AAClB,+EAA0D;
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../../../src/StructuredText/__tests__/index.test.tsx"],"names":[],"mappings":"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"}
|