{#if loading}
{/if} {#if currentIndex > 0} {/if} {#if currentIndex < images.length - 1} {/if}
{#if current.mime_type.startsWith('video/')} {:else} {current.filename} {/if}
onclose()}>{current.uploader_username}
{current.filename}
#{current.id} · {current.width}×{current.height} · {formatSize(current.file_size)} · {current.mime_type}
DOWNLOAD {currentIndex + 1} / {images.length}
{#if tagDetails.length > 0 || innateTagList.length > 0}
{#each tagDetails as t (t.tag)} {/each} {#each innateTagList as t (t)} {/each}
{/if} {#if isOwner}
{#if tagError} {tagError} {/if}
{ if (e.key === 'Enter') { if (sugIndex >= 0 && sugIndex < suggestions.length) { e.preventDefault(); selectSuggestion(suggestions[sugIndex]); } else { handleAddTags(); } } else if (e.key === 'Tab' || e.key === 'ArrowDown') { if (showSuggestions && suggestions.length > 0) { e.preventDefault(); sugIndex = (sugIndex + 1) % suggestions.length; } } else if (e.key === 'ArrowUp') { if (showSuggestions && suggestions.length > 0) { e.preventDefault(); sugIndex = sugIndex <= 0 ? suggestions.length - 1 : sugIndex - 1; } } else if (e.key === 'Escape') { showSuggestions = false; sugIndex = -1; } }} onblur={() => setTimeout(() => { showSuggestions = false; sugIndex = -1; }, 200)} disabled={tagBusy} /> {#if showSuggestions}
{#each suggestions as s, i} {/each}
{/if}
{/if}