Overview
Pending requests
{pendingCount}
Quarantined tracks
{quarantineCount}
Lidarr
{lidarrConnected ? 'Connected' : 'Unset'}
Pending requests
{#if pendingCount > PREVIEW_LIMIT}
View all {pendingCount} →
{/if}
{#if requests.isPending}
Loading…
{:else if requestPreview.length === 0}
No pending requests.
{:else}
{#each requestPreview as r (r.id)} {@const Icon = fallbackIcon(r.kind)}
{rowTitle(r)}
{rowSubtitle(r)}
onApprove(r)} aria-label={`Approve ${rowTitle(r)}`} class="flex h-8 items-center gap-1 rounded-md bg-action-primary px-3 text-sm text-text-primary hover:opacity-90" >
Approve
onReject(r)} aria-label={`Reject ${rowTitle(r)}`} class="flex h-8 items-center gap-1 rounded-md border border-border px-3 text-sm text-text-secondary hover:text-text-primary hover:bg-surface-hover" >
Reject
{/each}
{/if}
Quarantine
{#if quarantineCount > PREVIEW_LIMIT}
View all {quarantineCount} →
{/if}
{#if quarantine.isPending}
Loading…
{:else if quarantinePreview.length === 0}
No quarantined tracks.
{:else}
{#each quarantinePreview as row (row.track_id)} {@const fileKey = confirmKey(row.track_id, 'delete-file')} {@const lidarrKey = confirmKey(row.track_id, 'delete-lidarr')} {@const fileArmed = confirmingKey === fileKey} {@const lidarrArmed = confirmingKey === lidarrKey}
{row.track_title}
{row.artist_name} · {row.album_title} · {row.report_count} {row.report_count === 1 ? 'report' : 'reports'} {#if row.reports[0]} · {REASON_LABELS[row.reports[0].reason] ?? row.reports[0].reason} {/if}
onResolve(row)} aria-label={`Resolve ${row.track_title}`} class="flex h-8 items-center gap-1 rounded-md border border-border px-3 text-sm text-text-secondary hover:text-text-primary hover:bg-surface-hover" >
Resolve
onDeleteFile(row)} aria-label={fileArmed ? `Confirm delete file ${row.track_title}` : `Delete file ${row.track_title}`} class="flex h-8 items-center gap-1 rounded-md px-3 text-sm transition-colors {fileArmed ? 'bg-action-secondary text-text-primary' : 'border border-border text-text-secondary hover:text-text-primary hover:bg-surface-hover'}" >
{fileArmed ? 'Confirm?' : 'Delete file'}
onDeleteLidarr(row)} aria-label={lidarrArmed ? `Confirm delete via Lidarr ${row.track_title}` : `Delete via Lidarr ${row.track_title}`} class="flex h-8 items-center gap-1 rounded-md px-3 text-sm transition-colors {lidarrArmed ? 'bg-action-destructive text-text-primary' : 'border border-border text-text-secondary hover:text-text-primary hover:bg-surface-hover'}" >
{lidarrArmed ? 'Confirm?' : 'Delete via Lidarr'}
{/each}
{/if}
{#if toast}
{toast}
{/if}