{#if items.length === 0} {#if loading}
{:else}
{/if} {:else if layout === "grid"}
{#each items as item, index (item.id)}
{#snippet children({ props, })}
open(index)} tabindex="0" type="button" > {#if preview(item)?.state === "ready"} {@const ready = preview(item) as Extract< InlineMedia, { state: "ready" } >} {#if visualKind(item.kind) === "video"}
{:else}
{/if} {:else}
{/if}
{/snippet} {#snippet menu()}
open(index)} >Открыть на весь экран
jump(item.message_id)} >Перейти к сообщению
{#if item.downloaded}
save(item)} >Скачать файл
share(item)} >Доступ по ссылке
{/if} {/snippet}
{/each}
{:else}
{#each items as item, index (item.id)}
{#snippet children({ props, })}
open(index)} tabindex="0" type="button" >
{displayName(item)}
{formatListDate(item.created_at)} {#if item.file_size} · {formatBytes(item.file_size)} {/if}
{/snippet} {#snippet menu()}
open(index)} >Открыть
jump(item.message_id)} >Перейти к сообщению
{#if item.downloaded}
save(item)} >Скачать файл
share(item)} >Доступ по ссылке
{/if} {/snippet}
{/each}
{/if} {#if !done && items.length > 0}
loadMore()} type="button" > {loading ? "Загрузка…" : "Показать ещё"}
{/if}