Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 30 31 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 54x 54x 54x 54x 54x 54x 54x 72x 68x 72x 14x 14x 14x 68x 68x 68x 68x 54x 54x | import { EFFECT_TRANSPARENT } from '../../constants.js'; import { branch, block, destroy_effect } from '../../reactivity/effects.js'; /** * @template {(node: import('#client').TemplateNode, ...args: any[]) => import('#client').Dom} SnippetFn * @param {() => SnippetFn | null | undefined} get_snippet * @param {import('#client').TemplateNode} node * @param {(() => any)[]} args * @returns {void} */ export function snippet(get_snippet, node, ...args) { /** @type {SnippetFn | null | undefined} */ var snippet; /** @type {import('#client').Effect | null} */ var snippet_effect; block(() => { if (snippet === (snippet = get_snippet())) return; if (snippet_effect) { destroy_effect(snippet_effect); snippet_effect = null; } if (snippet) { snippet_effect = branch(() => /** @type {SnippetFn} */ (snippet)(node, ...args)); } }, EFFECT_TRANSPARENT); } |