fix: correctly ssr component in `svelte:head` with `$props.id()` or `css='injected'` (#15291)

pull/15292/head
Paolo Ricciuti 8 months ago committed by GitHub
parent 21dadfc997
commit b6bf735a23
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1,5 @@
---
'svelte': patch
---
fix: correctly ssr component in `svelte:head` with `$props.id()` or `css='injected'`

@ -34,7 +34,9 @@ export function copy_payload({ out, css, head, uid }) {
css: new Set(css),
head: {
title: head.title,
out: head.out
out: head.out,
css: new Set(head.css),
uid: head.uid
},
uid
};
@ -99,12 +101,13 @@ function props_id_generator() {
* @returns {RenderOutput}
*/
export function render(component, options = {}) {
const uid = options.uid ?? props_id_generator();
/** @type {Payload} */
const payload = {
out: '',
css: new Set(),
head: { title: '', out: '' },
uid: options.uid ?? props_id_generator()
head: { title: '', out: '', css: new Set(), uid },
uid
};
const prev_on_destroy = on_destroy;

@ -17,6 +17,8 @@ export interface Payload {
head: {
title: string;
out: string;
uid: () => string;
css: Set<{ hash: string; code: string }>;
};
/** Function that generates a unique ID */
uid: () => string;

@ -0,0 +1,5 @@
<script>
let id = $props.id();
</script>
<meta name="id" content={id} />

@ -0,0 +1,3 @@
import { test } from '../../test';
export default test({});

@ -0,0 +1,8 @@
<script>
import HeadNested from './HeadNested.svelte';
</script>
<svelte:head>
<HeadNested />
</svelte:head>
Loading…
Cancel
Save