diff options
Diffstat (limited to 'packages/renderers/preact')
-rw-r--r-- | packages/renderers/preact/client.js | 4 | ||||
-rw-r--r-- | packages/renderers/preact/index.js | 5 | ||||
-rw-r--r-- | packages/renderers/preact/package.json | 15 | ||||
-rw-r--r-- | packages/renderers/preact/server.js | 20 | ||||
-rw-r--r-- | packages/renderers/preact/static-html.js | 24 |
5 files changed, 0 insertions, 68 deletions
diff --git a/packages/renderers/preact/client.js b/packages/renderers/preact/client.js deleted file mode 100644 index 2b8d4bd49..000000000 --- a/packages/renderers/preact/client.js +++ /dev/null @@ -1,4 +0,0 @@ -import { h, hydrate } from 'preact'; -import StaticHtml from './static-html.js'; - -export default (element) => (Component, props, children) => hydrate(h(Component, props, h(StaticHtml, { value: children })), element); diff --git a/packages/renderers/preact/index.js b/packages/renderers/preact/index.js deleted file mode 100644 index cfd4ae8c6..000000000 --- a/packages/renderers/preact/index.js +++ /dev/null @@ -1,5 +0,0 @@ -export default { - name: '@astro-renderer/preact', - client: './client', - server: './server', -}; diff --git a/packages/renderers/preact/package.json b/packages/renderers/preact/package.json deleted file mode 100644 index 063a28b50..000000000 --- a/packages/renderers/preact/package.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "@astro-renderer/preact", - "version": "0.0.1", - "type": "module", - "exports": { - ".": "./index.js", - "./client": "./client.js", - "./server": "./server.js", - "./package.json": "./package.json" - }, - "dependencies": { - "preact": "^10.5.13", - "preact-render-to-string": "^5.1.18" - } -} diff --git a/packages/renderers/preact/server.js b/packages/renderers/preact/server.js deleted file mode 100644 index e8ece01ba..000000000 --- a/packages/renderers/preact/server.js +++ /dev/null @@ -1,20 +0,0 @@ -import { h } from 'preact'; -import { renderToString } from 'preact-render-to-string'; -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/preact/static-html.js b/packages/renderers/preact/static-html.js deleted file mode 100644 index 5a31a68af..000000000 --- a/packages/renderers/preact/static-html.js +++ /dev/null @@ -1,24 +0,0 @@ -import { h } from 'preact'; - -/** - * 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 Preact that this subtree is - * entirely static and will never change via `shouldComponentUpdate`. - */ -const StaticHtml = ({ value }) => { - if (!value) return null; - return h('astro-fragment', { dangerouslySetInnerHTML: { __html: value } }); -}; - -/** - * This tells Preact 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; |