fix head hydration

pull/10943/head
Rich Harris 2 years ago
parent 8a54f83a77
commit c6eb00e764

@ -6,13 +6,7 @@ import {
EACH_ITEM_REACTIVE,
EACH_KEYED
} from '../../../../constants.js';
import {
hydrate_anchor,
hydrate_nodes,
hydrating,
set_hydrating,
update_hydrate_nodes
} from '../hydration.js';
import { hydrate_anchor, hydrate_nodes, hydrating, set_hydrating } from '../hydration.js';
import { empty } from '../operations.js';
import { insert, remove } from '../reconciler.js';
import { untrack } from '../../runtime.js';

@ -1,4 +1,4 @@
import { hydrate_nodes, hydrating, set_hydrate_nodes, update_hydrate_nodes } from '../hydration.js';
import { hydrate_anchor, hydrate_nodes, hydrating, set_hydrate_nodes } from '../hydration.js';
import { empty } from '../operations.js';
import { render_effect } from '../../reactivity/effects.js';
import { remove } from '../reconciler.js';
@ -15,7 +15,13 @@ export function head(render_fn) {
if (hydrating) {
previous_hydrate_nodes = hydrate_nodes;
update_hydrate_nodes(document.head.firstChild);
let anchor = /** @type {import('#client').TemplateNode} */ (document.head.firstChild);
while (anchor.nodeType !== 8 || /** @type {Comment} */ (anchor).data !== '[') {
anchor = /** @type {import('#client').TemplateNode} */ (anchor.nextSibling);
}
anchor = /** @type {import('#client').TemplateNode} */ (hydrate_anchor(anchor));
}
var anchor = document.head.appendChild(empty());

@ -25,16 +25,6 @@ export function set_hydrate_nodes(nodes) {
hydrate_nodes = /** @type {import('#client').TemplateNode[]} */ (nodes);
}
/**
* @param {Node | null} first
* @param {boolean} [insert_text] Whether to insert an empty text node if `nodes` is empty
*/
export function update_hydrate_nodes(first, insert_text) {
const nodes = get_hydrate_nodes(first, insert_text);
set_hydrate_nodes(nodes);
return nodes;
}
/**
* Returns all nodes between the first `<![>...<!]>` comment tag pair encountered.
* @param {Node} node

@ -15,8 +15,7 @@ import {
hydrate_nodes,
hydrating,
set_hydrate_nodes,
set_hydrating,
update_hydrate_nodes
set_hydrating
} from './dom/hydration.js';
import { array_from } from './utils.js';
import { handle_event_propagation } from './dom/elements/events.js';

Loading…
Cancel
Save