Your library

{#each TABS as [k, l] (k)} {/each}
{#if tab === "albums"}
{#each SORTS as [k, l] (k)} {/each}
{list.length} album{list.length === 1 ? "" : "s"} · {totalTracks} tracks
{#if !list.length}
Nothing here yetThe library on this phone is empty.
{:else if view === "grid"}
{#each list as a (a.id)} push("album", { id: a.id }, screenEl)} onmore={() => openHalf("album", { album: a })} /> {/each}
{:else} {#each list as a (a.id)} {/each} {/if} {:else if tab === "artists"}
{arts.length} artists · {lib.follows.length} followed
{#each arts as ar (ar.name)} {/each} {:else if tab === "tracks"} {:else if tab === "playlists"} {:else if tab === "gaps"} {#if !shelves.length}
Follow the artists you collect.The records they released that this library does not have show up here, shelf by shelf — the desktop's discography lookup, only ever for an artist you followed, so a name is never guessed onto a namesake.
{:else}
{shelves.length} followed {shelves.length === 1 ? "artist" : "artists"} on this phone
{#each shelves as ar (ar.name)} {@const key = foldKey(ar.name)} {@const count = gapCount(ar)} {#if count !== 0} {:else}
Complete — every released record is here
{/if} {#if gapOpen[key] && gapRows[key]?.length}
{#each gapRows[key] as r (r.id)} push("catalogAlbum", { id: r.id, artist: ar.name, title: r.title }, screenEl)} onmore={() => openHalf("catalogAlbum", { album: { ...r, artist: r.artist || ar.name } })} /> {/each}
{/if} {/each} {/if} {/if}