{#if loading}
Laster sammenligning...
{:else if error}
{error}
{:else}
Sammenlign transkripsjoner
Alle nye
Alle gamle
{#each newSegments as newSeg (newSeg.seq)} {@const oldSeg = oldSegments.find((o) => o.seq === newSeg.seq)} {@const choice = choices[newSeg.seq] ?? 'new'} {@const different = isDifferent(newSeg.seq)} {@const isActive = currentTime * 1000 >= newSeg.start_ms && currentTime * 1000 < newSeg.end_ms}
handleSeek(newSeg.start_ms)} class="text-[10px] font-mono text-gray-400 hover:text-blue-500 flex items-center gap-0.5" >
{formatTimestamp(newSeg.start_ms)}
{#if different && oldSeg}
toggleChoice(newSeg.seq)} class="text-[10px] px-1.5 py-0.5 rounded font-medium transition-colors {choice === 'old' ? 'bg-amber-100 text-amber-700 hover:bg-amber-200' : 'bg-green-100 text-green-700 hover:bg-green-200'}" > {choice === 'old' ? 'Beholder gammel' : 'Bruker ny'}
{:else if !oldSeg}
Nytt segment
{:else}
Uendret
{/if}
{#if different && oldSeg}
{ choices[newSeg.seq] = 'old'; }} class="text-left text-[11px] leading-relaxed p-1.5 rounded border transition-colors {choice === 'old' ? 'border-amber-300 bg-amber-50 text-gray-800' : 'border-gray-200 bg-gray-50 text-gray-500 hover:border-amber-200'}" > {#if oldSeg.edited}
redigert
{/if} {oldSeg.content}
{ choices[newSeg.seq] = 'new'; }} class="text-left text-[11px] leading-relaxed p-1.5 rounded border transition-colors {choice === 'new' ? 'border-green-300 bg-green-50 text-gray-800' : 'border-gray-200 bg-gray-50 text-gray-500 hover:border-green-200'}" > {newSeg.content}
{:else}
{newSeg.content}
{/if}
{/each}
{stats.kept_new} nye, {stats.kept_old} gamle
ondone?.()} disabled={saving} class="text-[10px] px-2 py-1 rounded text-gray-500 hover:text-gray-700 hover:bg-gray-100" > Avbryt
{saving ? 'Lagrer...' : 'Bekreft valg'}
{/if}