dev-juju/EditorJS-React-Renderer

Error: This browser does not support `document.implementation.createHTMLDocument` when using Next.JS

Closed this issue · 3 comments

Describe the bug
When using older versions of this plugin (2.7.3) with Next JS we are able to SSG render a page using the following code:

import Output from 'editorjs-react-renderer'

export default function BookReview(props) {
    const {data, meta} = props;

    return (
        <>
            <Head>
                <title>{`${meta?.title}`}</title>
                <meta name="description" content={meta?.description} />
            </Head>
            <Container className="mt-16 lg:mt-32">
                <article>
                    <Output renderers={ renderers }  data={ data } />
                </article>
            </Container>
        </>
    )
}

export async function getStaticPaths() {
    return {
        paths: [{ params: { slug: 'abc' } }, { params: { slug: 'def' } }],
        fallback: false, // can also be true or 'blocking'
    }
}

export async function getStaticProps() {
    return {
        props: {
            data: { ... }
       }
   }
}

However, we need to provide a custom renderer to the component which I assume is only available in more recent versions of the plugin. This however breaks compatibility with the above code:
image

Call Stack
s
workspace/editorjs-react-renderer-next/node_modules/editorjs-react-renderer/dist/index.min.js (1:13270)
e.exports
workspace/editorjs-react-renderer-next/node_modules/editorjs-react-renderer/dist/index.min.js (1:14492)
e.exports
workspace/editorjs-react-renderer-next/node_modules/editorjs-react-renderer/dist/index.min.js (1:14762)
l
workspace/editorjs-react-renderer-next/node_modules/editorjs-react-renderer/dist/index.min.js (1:15854)
t.default
workspace/editorjs-react-renderer-next/node_modules/editorjs-react-renderer/dist/index.min.js (1:46859)
renderWithHooks
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5658:16)
renderIndeterminateComponent
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5731:15)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5946:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderNode
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6259:12)
renderChildrenArray
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6211:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6141:7)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5971:9)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderIndeterminateComponent
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5785:7)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5946:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderNode
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6259:12)
renderHostElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5642:3)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5952:5)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderNode
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6259:12)
renderHostElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5642:3)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5952:5)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderNode
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6259:12)
renderChildrenArray
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6211:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6141:7)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5971:9)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderIndeterminateComponent
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5785:7)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5946:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderIndeterminateComponent
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5785:7)
renderElement
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (5946:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6104:11)
renderNodeDestructive
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)
renderNode
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6259:12)
renderChildrenArray
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6211:7)
renderNodeDestructiveImpl
workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6141:7)
renderNodeDestructive
file:///Users/hassannazar/dev/workspace/editorjs-react-renderer-next/node_modules/react-dom/cjs/react-dom-server.browser.development.js (6076:14)

To Reproduce
Reproducer: https://github.com/HasseNasse/editorjs-react-renderer-next

Additional context
Not sure if this is a next.js related issue or not

Got the same error :(
Maybe is the NextJS 13+ version.

If you're using SSG then your page is pre-rendered at compile time outside of the browser.

ERR now only works client side starting from v3, so this might be the problem you have.
See https://github.com/dev-juju/EditorJS-React-Renderer#server-side-rendering

Can you dynamically import the package as described and let me know what happens then?

Was it a decision not to support server side rendering or is it just an unresolved issue?
I would like to use this library if it works with SSG.

If you know what could be wrong, I can try to create a PR