e.key === 'Enter' && props.renaming !== node.path && click()}
oncontextmenu={(e) => {
e.stopPropagation();
props.onContext(e, node);
}}
ondragstart={(e) => e.dataTransfer?.setData('text/x-papure-path', node.path)}
ondragover={(e) => {
if (node.kind !== 'folder') return;
e.preventDefault();
e.stopPropagation();
dragOver = true;
}}
ondragleave={() => (dragOver = false)}
ondrop={(e) => {
if (node.kind !== 'folder') return;
e.preventDefault();
e.stopPropagation();
dragOver = false;
props.onDrop(node.path, e.dataTransfer?.getData('text/x-papure-path') ?? '');
}}
>
{#if node.kind === 'folder'}
{/if}
{#if props.renaming === node.path}
e.stopPropagation()}
onblur={(e) => props.onRename(node.path, node.kind, e.currentTarget.value)}
/>
{:else}
{node.name}
{/if}
{#if node.kind === 'folder' && isOpen}
{#each node.children as child (child.path)}
{/each}
{/if}