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