import React, { Fragment } from 'react'; import escapeHTML from 'escape-html'; import { Text } from 'slate'; // eslint-disable-next-line no-use-before-define type Children = Leaf[] type Leaf = { type: string value?: { url: string alt: string } children?: Children url?: string [key: string]: unknown } const serialize = (children: Children): React.ReactElement[] => children.map((node, i) => { if (Text.isText(node)) { let text = ; if (node.bold) { text = ( {text} ); } if (node.code) { text = ( {text} ); } if (node.italic) { text = ( {text} ); } if (node.underline) { text = ( {text} ); } if (node.strikethrough) { text = ( {text} ); } return ( {text} ); } if (!node) { return null; } switch (node.type) { case 'h1': return (

{serialize(node.children)}

); case 'h2': return (

{serialize(node.children)}

); case 'h3': return (

{serialize(node.children)}

); case 'h4': return (

{serialize(node.children)}

); case 'h5': return (
{serialize(node.children)}
); case 'h6': return (
{serialize(node.children)}
); case 'blockquote': return (
{serialize(node.children)}
); case 'ul': return ( ); case 'ol': return (
    {serialize(node.children)}
); case 'li': return (
  • {serialize(node.children)}
  • ); case 'link': return ( {serialize(node.children)} ); default: return (

    {serialize(node.children)}

    ); } }); export default serialize;