diff options
Diffstat (limited to 'packages/renderers/react')
-rw-r--r-- | packages/renderers/react/client.js | 6 | ||||
-rw-r--r-- | packages/renderers/react/index.js | 5 | ||||
-rw-r--r-- | packages/renderers/react/package.json | 15 | ||||
-rw-r--r-- | packages/renderers/react/server.js | 20 | ||||
-rw-r--r-- | packages/renderers/react/static-html.js | 24 |
5 files changed, 0 insertions, 70 deletions
diff --git a/packages/renderers/react/client.js b/packages/renderers/react/client.js deleted file mode 100644 index b699a76d0..000000000 --- a/packages/renderers/react/client.js +++ /dev/null @@ -1,6 +0,0 @@ -import { createElement } from 'react'; -import { hydrate } from 'react-dom'; -import StaticHtml from './static-html.js'; - -export default (element) => (Component, props, children) => - hydrate(createElement(Component, { ...props, suppressHydrationWarning: true }, createElement(StaticHtml, { value: children, suppressHydrationWarning: true })), element); diff --git a/packages/renderers/react/index.js b/packages/renderers/react/index.js deleted file mode 100644 index fdc9e29d5..000000000 --- a/packages/renderers/react/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - name: '@astro-renderer/react', - client: './client', - server: './server', -}; diff --git a/packages/renderers/react/package.json b/packages/renderers/react/package.json deleted file mode 100644 index 7fb22d47a..000000000 --- a/packages/renderers/react/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@astro-renderer/react", - "version": "0.0.1", - "type": "module", - "exports": { - ".": "./index.js", - "./client": "./client.js", - "./server": "./server.js", - "./package.json": "./package.json" - }, - "dependencies": { - "react": "^17.0.2", - "react-dom": "^17.0.2" - } -} diff --git a/packages/renderers/react/server.js b/packages/renderers/react/server.js deleted file mode 100644 index aa3abc7bb..000000000 --- a/packages/renderers/react/server.js +++ /dev/null @@ -1,20 +0,0 @@ -import { createElement as h } from 'react'; -import { renderToStaticMarkup as renderToString } from 'react-dom/server.js'; -import StaticHtml from './static-html.js'; - -function check(Component, props) { - try { - return Boolean(renderToString(h(Component, props))); - } catch (e) {} - return false; -} - -function renderToStaticMarkup(Component, props, children) { - const html = renderToString(h(Component, props, h(StaticHtml, { value: children }))); - return { html }; -} - -export default { - check, - renderToStaticMarkup, -}; diff --git a/packages/renderers/react/static-html.js b/packages/renderers/react/static-html.js deleted file mode 100644 index 1efc625d0..000000000 --- a/packages/renderers/react/static-html.js +++ /dev/null @@ -1,24 +0,0 @@ -import { createElement as h } from 'react'; - -/** - * Astro passes `children` as a string of HTML, so we need - * a wrapper `div` to render that content as VNodes. - * - * As a bonus, we can signal to React that this subtree is - * entirely static and will never change via `shouldComponentUpdate`. - */ -const StaticHtml = ({ value }) => { - if (!value) return null; - return h('astro-fragment', { suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: value } }); -}; - -/** - * This tells React to opt-out of re-rendering this subtree, - * In addition to being a performance optimization, - * this also allows other frameworks to attach to `children`. - * - * See https://preactjs.com/guide/v8/external-dom-mutations - */ -StaticHtml.shouldComponentUpdate = () => false; - -export default StaticHtml; |