{ if (e.key === 'Enter') { e.preventDefault(); (e.currentTarget as HTMLInputElement).blur(); } }} title={renaming ? 'Renaming…' : 'Click to rename file on disk'} /> {#if renaming} {/if}
{#if showDateSuggestion && dateSuggestion}
Suggested from path: {dateSuggestion.iso} {#if dateSuggestion.source === 'path-ym-default-day'} (estimated day) {/if}
{/if}
{folderLabel}
{dims}
{sizeStr}
{placeLabel || 'No location'} {#if photo.Country && photo.Country !== 'zz'} {/if}
setMetadataSection('tags', e.currentTarget.open)} > Tags
Note
Score
{#each [1, 2, 3, 4, 5] as n (n)} {/each}
Colors
{#each COLOR_SWATCHES as c (c.key)} {@const picked = currentColor === c.key} {/each}
Keywords
{#each keywords as kw (kw)} {kw} {/each} { if (e.key === 'Enter' || e.key === ',') { e.preventDefault(); addKeyword(); } }} />
{#if (photo.Labels ?? []).length > 0}
Labels (auto)
{#each photo.Labels ?? [] as lbl (lbl.UID ?? lbl.Label?.Slug)} {@const slug = lbl.Label?.Slug} {@const name = lbl.Label?.Name ?? slug ?? '(unknown)'} {name} {/each}
{/if}
setMetadataSection('gps', e.currentTarget.open)} > GPS
setMetadataSection('file', e.currentTarget.open)} > File
{#if cameraStr}
Camera
{cameraStr}
{/if} {#if lensStr && lensStr !== cameraStr}
Lens
{lensStr}
{/if} {#if exposureParts.fnum || exposureParts.exp || exposureParts.iso || exposureParts.focal}
Exposure
{#if exposureParts.fnum} {exposureParts.fnum} {/if} {#if exposureParts.exp} {exposureParts.exp} {/if} {#if exposureParts.iso}{exposureParts.iso}{/if} {#if exposureParts.focal}{exposureParts.focal}{/if}
{/if}
Type
{pf.FileType ?? photo.Type ?? '—'}
Hash
{pf.Hash?.slice(0, 16) ?? '—'}…
Indexed
{(photo.IndexedAt ?? '').slice(0, 10) || '—'}
{#if patchMutation.isPending || renaming}
Saving…
{/if}