summaryrefslogtreecommitdiff
path: root/packages/integrations/react/static-html.js
blob: e319a40c7b98fe768d3c019db734b3cb17d6bf7d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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, name, hydrate = true }) => {
	if (!value) return null;
	const tagName = hydrate ? 'astro-slot' : 'astro-static-slot';
	return h(tagName, {
		name,
		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;
ef='/ansg191/astro/commit/packages/integrations/vercel/test/split.test.js?h=@astrojs/vercel@7.3.4&id=ae2a10e1a768e31d243194694222932ffafb54cc&follow=1'>Fix an issue where Vercel adapter may create functions for prerendered ↵Gravatar Ming-jun Lu 4-2/+26 routes (#10231) * fix: fix an issue where Vercel adapter may create functions for prerendered routes * test: update test cases in `split.test.js` * chore: add changeset * refactor: apply suggested changes from code review * Apply suggestions from code review --------- Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com> 2024-02-26[ci] formatGravatar Matthew Phillips 1-1/+1 2024-02-26Fix hydration scripts missing from dynamic slot usage (#10219)Gravatar Matthew Phillips 6-1/+69 2024-02-26[ci] formatGravatar Matthew Phillips 1-5/+5 2024-02-26Prevent errors in rendering from crashing server (#10221)Gravatar Matthew Phillips 7-14/+78 * Prevent errors in rendering from crashing server * Add changeset * Make the reject an error * Simplify * Update .changeset/breezy-pears-admire.md Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> --------- Co-authored-by: Florian Lefebvre <contact@florian-lefebvre.dev> 2024-02-26fix: svelte 5 mount/hydrate api change. (#10224)Gravatar 前端子鱼 3-5/+12 2024-02-24[ci] formatGravatar Arsh 1-9/+30 2024-02-24prevent warning: `Astro.request.headers` is not available in "static" output ↵Gravatar Arsh 2-27/+30 mode (#10196) 2024-02-23Improved error logging from config (#10207)Gravatar Ben Holmes 4-36/+67 * fix: better error messaging on seed() * chore: collection -> table for errors * chore: changeset 2024-02-23[ci] formatGravatar Arsh 3-3/+3 2024-02-23fix(dev): remove params for prerendered pages (#10199)Gravatar Arsh 9-13/+78 * fix(dev): remove params for prerendered pages * add test * add changset * deduplicate param removal * format * adjust tests 2024-02-23[ci] release (#10213)astro@4.4.4@astrojs/vercel@7.3.3@astrojs/node@8.2.1@astrojs/db@0.4.0Gravatar Houston (Bot) 41-177/+95 Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> 2024-02-23Fixes edge middleware calling nested routes (#10215)Gravatar Matthew Phillips 2-1/+6 2024-02-23Adds an error message for non-string transition:name values (#10205)Gravatar Martin Trapp 2-0/+8 2024-02-23[ci] formatGravatar Furkan Erdem 1-1/+1 2024-02-23Fix(node): Custom headers are not present in responses from standalone Node ↵Gravatar Furkan Erdem 8-0/+163 server in preview mode (#10208) * fix(node): add user specified headers to preview server responses * docs: clarify comment * style: new line * test: remove test * chore: add changeset