CLOSE
{#if loading}
{/if} {#if currentIndex > 0}
‹
{/if} {#if currentIndex < images.length - 1}
›
{/if}
{#if current.mime_type.startsWith('video/')}
{:else}
{/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)}
{ onclose(); window.location.href = '/browse?tag=' + encodeURIComponent(t.tag); }} >
{t.tag}
{t.usage_count}
{/each} {#each innateTagList as t (t)}
{ onclose(); window.location.href = '/browse?tag=' + encodeURIComponent(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}
selectSuggestion(s)}>{s}
{/each}
{/if}
ADD
REMOVE
{/if}