Everything written this session that has not been through the device: rounds 43 to 48 (each patch adversarially verified, 43's transient-notice expectation fixed), a partial round 49, the pipeline scripts, the Android Auto design and the icon comparison mock. Also the two harness changes that were never A/B'd — adaptive waits, which may only shorten a declared wait and never lengthen it, and a ship that runs the mock walk and the deploy at the same time. The A/B and its 255-step baseline are in handoff/tools; main stays at what the phone has actually walked.
16 lines
808 B
Plaintext
16 lines
808 B
Plaintext
/** 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. */
|