diff --git a/docs/fields/rich-text.mdx b/docs/fields/rich-text.mdx index 338981a525..c23497df88 100644 --- a/docs/fields/rich-text.mdx +++ b/docs/fields/rich-text.mdx @@ -271,7 +271,7 @@ const serialize = (children) => children.map((node, i) => { {serialize(node.children)} ); - case 'quote': + case 'blockquote': return (
{serialize(node.children)} diff --git a/examples/auth/nextjs/components/RichText/serialize.tsx b/examples/auth/nextjs/components/RichText/serialize.tsx index e134b11f46..3b14fc9f19 100644 --- a/examples/auth/nextjs/components/RichText/serialize.tsx +++ b/examples/auth/nextjs/components/RichText/serialize.tsx @@ -69,7 +69,7 @@ const serialize = (children: Children): React.ReactElement[] => return
{serialize(node.children)}
case 'h6': return
{serialize(node.children)}
- case 'quote': + case 'blockquote': return
{serialize(node.children)}
case 'ul': return diff --git a/examples/form-builder/nextjs/components/RichText/serialize.tsx b/examples/form-builder/nextjs/components/RichText/serialize.tsx index 045dde6e45..cfb4dc443c 100644 --- a/examples/form-builder/nextjs/components/RichText/serialize.tsx +++ b/examples/form-builder/nextjs/components/RichText/serialize.tsx @@ -114,7 +114,7 @@ const serialize = (children: Children): React.ReactElement[] => children.map((no {serialize(node.children)} ); - case 'quote': + case 'blockquote': return (
{serialize(node.children)} diff --git a/examples/preview/nextjs/components/RichText/serialize.tsx b/examples/preview/nextjs/components/RichText/serialize.tsx index e134b11f46..3b14fc9f19 100644 --- a/examples/preview/nextjs/components/RichText/serialize.tsx +++ b/examples/preview/nextjs/components/RichText/serialize.tsx @@ -69,7 +69,7 @@ const serialize = (children: Children): React.ReactElement[] => return
{serialize(node.children)}
case 'h6': return
{serialize(node.children)}
- case 'quote': + case 'blockquote': return
{serialize(node.children)}
case 'ul': return diff --git a/examples/redirects/nextjs/components/RichText/serialize.tsx b/examples/redirects/nextjs/components/RichText/serialize.tsx index fdf7efeeac..9e4febd7bb 100644 --- a/examples/redirects/nextjs/components/RichText/serialize.tsx +++ b/examples/redirects/nextjs/components/RichText/serialize.tsx @@ -67,7 +67,7 @@ const serialize = (children: Children): React.ReactElement[] => return
{serialize(node.children)}
case 'h6': return
{serialize(node.children)}
- case 'quote': + case 'blockquote': return
{serialize(node.children)}
case 'ul': return diff --git a/src/admin/components/forms/field-types/RichText/elements/blockquote/index.scss b/src/admin/components/forms/field-types/RichText/elements/blockquote/index.scss new file mode 100644 index 0000000000..b0cc5424e2 --- /dev/null +++ b/src/admin/components/forms/field-types/RichText/elements/blockquote/index.scss @@ -0,0 +1,9 @@ +@import '../../../../../../scss/styles.scss'; + +.rich-text-blockquote { + &[data-slate-node=element] { + margin: base(.625) 0; + padding-left: base(0.625); + border-left: 1px solid var(--theme-elevation-200); + } +} diff --git a/src/admin/components/forms/field-types/RichText/elements/blockquote/index.tsx b/src/admin/components/forms/field-types/RichText/elements/blockquote/index.tsx new file mode 100644 index 0000000000..58c0ac68c9 --- /dev/null +++ b/src/admin/components/forms/field-types/RichText/elements/blockquote/index.tsx @@ -0,0 +1,25 @@ +import React from 'react'; +import ElementButton from '../Button'; +import BlockquoteIcon from '../../../../../icons/Blockquote'; + +import './index.scss'; + +const Blockquote = ({ attributes, children }) => ( +
+ {children} +
+); + +const blockquote = { + Button: () => ( + + + + ), + Element: Blockquote, +}; + +export default blockquote; diff --git a/src/admin/components/forms/field-types/RichText/elements/index.tsx b/src/admin/components/forms/field-types/RichText/elements/index.tsx index dcb884ec1e..72eed50f60 100644 --- a/src/admin/components/forms/field-types/RichText/elements/index.tsx +++ b/src/admin/components/forms/field-types/RichText/elements/index.tsx @@ -5,6 +5,7 @@ import h4 from './h4'; import h5 from './h5'; import h6 from './h6'; import link from './link'; +import blockquote from './blockquote'; import ol from './ol'; import ul from './ul'; import li from './li'; @@ -20,6 +21,7 @@ const elements = { h5, h6, link, + blockquote, ol, ul, li, diff --git a/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts b/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts index 869b583014..e913ab0d2e 100644 --- a/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts +++ b/src/admin/components/views/Version/RenderFieldsToDiff/fields/Text/richTextToHTML.ts @@ -70,6 +70,10 @@ export const richTextToHTML = (content: unknown): string => { nodeHTML = `
${richTextToHTML(node.children)}
`; break; + case 'blockquote': + nodeHTML = `
${richTextToHTML(node.children)}
`; + break; + case 'ul': nodeHTML = ``; break;