{#snippet nodes(list: TreeNode[])} {#each list as node (`${node.type}:${node.path}`)} {#if node.type === "dir"} {@const open = !closed[node.path]} (closed[node.path] = !e.currentTarget.open)}> {#if open} {:else} {/if} {node.name} {@render nodes(node.children)} {:else} { event.preventDefault(); onSelect(node.path); } : undefined} > {node.name} {/if} {/each} {/snippet}