pull/10948/head
Rich Harris 2 years ago
parent 9ba60e5330
commit c08bd16103

@ -6,6 +6,7 @@ import {
branch,
destroy_effect,
pause_effect,
render_effect,
resume_effect
} from '../../reactivity/effects.js';
import { remove } from '../reconciler.js';
@ -45,6 +46,7 @@ function swap_block_dom(effect, from, to) {
export function element(anchor, get_tag, is_svg, render_fn) {
const parent_effect = /** @type {import('#client').Effect} */ (current_effect);
render_effect(() => {
/** @type {string | null} */
let tag;
@ -64,7 +66,7 @@ export function element(anchor, get_tag, is_svg, render_fn) {
*/
let each_item_block = current_each_item;
const wrapper = block(() => {
block(() => {
const next_tag = get_tag() || null;
if (next_tag === tag) return;
@ -141,14 +143,8 @@ export function element(anchor, get_tag, is_svg, render_fn) {
set_current_each_item(previous_each_item);
});
wrapper.ondestroy = () => {
if (element !== null) {
remove(element);
element = null;
}
if (effect) {
destroy_effect(effect);
}
return () => {
element?.remove();
};
});
}

@ -12,6 +12,9 @@ export function head(render_fn) {
let previous_hydrate_nodes = null;
let was_hydrating = hydrating;
/** @type {Comment | Text} */
var anchor;
if (hydrating) {
previous_hydrate_nodes = hydrate_nodes;
@ -21,10 +24,10 @@ export function head(render_fn) {
}
anchor = /** @type {import('#client').TemplateNode} */ (hydrate_anchor(anchor));
} else {
anchor = document.head.appendChild(empty());
}
var anchor = document.head.appendChild(empty());
try {
block(() => render_fn(anchor));
} finally {

Loading…
Cancel
Save