/** Popular on its own — the desktop's fast lane (`catalog_artist_popular`). * It waits on nothing but the linked MBID and one Last.fm call, so the * section can paint while the full page is still being built; the page's * own list wins once it lands (the same order, from the same inputs), and * this one stays for an artist whose page came back with no Popular. */ export function loadPopular(id) { if (id == null || catalog.popular[id]) return; catalog.popular[id] = { status: "loading", tracks: [] }; api.catalogArtistPopular(id).then( (tracks) => { catalog.popular[id] = { status: "ready", tracks: tracks ?? [] }; }, () => { catalog.popular[id] = { status: "error", tracks: [] }; }, ); } /** A portrait for a byline — the same identity rule, search only. */