Tracking

{#if !loading && loggedInTrackers.length > 0}
{#each loggedInTrackers as t} {@const count = t.trackRecords.nodes.length} {/each}
{/if}
{#if loading}
Loading…
{:else if error}

{error}

{:else if loggedInTrackers.length === 0}

No trackers connected.

Go to Settings → Tracking to connect AniList, MAL, or others.

{:else if filtered.length === 0}

{searchQuery || statusFilter !== "all" ? "No results." : "Nothing tracked yet."}

{#if searchQuery || statusFilter !== "all"} {/if}
{:else}
{#each filtered as record (record.tracker.id + ":" + record.id)} {@const tracker = record.tracker} {@const isBusy = updatingId === record.id} {@const isSyncing = syncingId === record.id} {@const progress = record.totalChapters > 0 ? Math.min(100, (record.lastChapterRead / record.totalChapters) * 100) : null} {@const stars = scoreToStars(record.displayScore, tracker.scores)} {@const statusName = (tracker.statuses ?? []).find(s => s.value === record.status)?.name ?? "—"}
openManga(record)} onkeydown={(e) => e.key === "Enter" && openManga(record)} title="Open in library" > {#if record.manga?.thumbnailUrl} {:else}
{/if}
{#if record.private} {/if} {#if isSyncing} {:else} {/if} {#if record.remoteUrl} {/if}
{/each}
{/if}
{#if confirmUnbindRecord} {@const r = confirmUnbindRecord} {/if}