{#if view === "files" || stack.length > 0} {/if} {#if view === "nodes" && canCreateHere} {/if} {#if view === "files" && projectCanEdit} {/if}
{initial} {$me?.displayName ?? $me?.userId ?? ""}
{ e.preventDefault(); menu = { x: e.clientX, y: e.clientY, items: bgMenuItems() }; }} > {#if view === "nodes"} {#if nodesError !== null}
{nodesError}
{:else if children === null}
加载中…
{:else if children.length === 0}
{currentFolder === null ? "空文件库" : "空文件夹"}{canCreateHere ? " · 右键或点上方按钮新建" : ""}
{:else}
{#each children as n (n.id)} (selected = n.id)} onopen={() => openNode(n)} oncontextmenu={(x, y) => (menu = { x, y, items: nodeMenuItems(n) })} /> {/each}
{/if} {:else} {#if filesError !== null}
{filesError}
{:else if files === null}
加载中…
{:else if files.length === 0}
空仓库{projectCanEdit ? " · 右键或点上方按钮新建文件" : ""}
{:else}
{#each files as f (f.path)} (selected = f.path)} onopen={() => previewFile(f)} oncontextmenu={(x, y) => (menu = { x, y, items: fileMenuItems(f) })} /> {/each}
{/if} {/if}
{#if view === "files" && $selectedFilePath && projectNode}
void loadFiles()} onclose={clearSelectedFile} />
{/if}
{#if menu} (menu = null)} /> {/if} {#if modal === "create"} (modal = null)}>
{/if} {#if modal === "rename" && renameTarget} (modal = null)}>
{/if} {#if modal === "grants" && detailNode} (modal = null)}> {/if} {#if modal === "detail" && detailNode} (modal = null)}> { modal = null; refresh(); }} /> {/if} {#if modal === "newFile"} (modal = null)}>
{/if}