spaCy/website/src/templates/mdx-renderer.js

22 lines
820 B
JavaScript

/**
* Temporary hack to prevent this issue:
* https://github.com/ChristopherBiscardi/gatsby-mdx/issues/244
*/
import React from 'react'
import { MDXTag } from '@mdx-js/tag'
import { withMDXComponents } from '@mdx-js/tag/dist/mdx-provider'
import { withMDXScope } from 'gatsby-mdx/context'
const WrappedComponent = React.memo(({ scope = {}, components = {}, children, ...props }) => {
if (!children) return null
const fullScope = { React, MDXTag, ...scope }
const keys = Object.keys(fullScope)
const values = keys.map(key => fullScope[key])
const fn = new Function('_fn', ...keys, `${children}`) // eslint-disable-line no-new-func
const End = fn({}, ...values)
return React.createElement(End, { components, ...props })
})
export default withMDXScope(withMDXComponents(WrappedComponent))