feat(albums): draw the album dropdown that was already being computed
Enter on an album card fetched the album's tracks over the IPC and ran the whole split state machine (splitMode true, splitIndex measured against the real container), then render() drew the single grid because it never consulted splitMode; connectedCallback referenced renderSplitGrid only to satisfy noUnusedLocals. perf.p2 files this as dead code — it is the only route from the albums grid to track-details, since a plain click navigates to the catalog page instead. Two things it needed that the audit does not mention. The grid could not scroll: .grid-scroll-container is the markup artists-view and genres-view use, and cover-grid had the class with no rule for it, so 186984px of albums sat in a 772px box at 5000 albums, unreachable by wheel, keyboard or scrollbar — and that is the element scroll-manager saves and restores, so its scrollTop was permanently 0. And the shared context menu was labelled 'Album actions' unconditionally, which nothing could observe while a track menu was unreachable. Both halves of the split grid carry the listbox semantics the single grid gained in the ARIA pass.
This commit is contained in:
@@ -13,6 +13,27 @@ const gridStyles = css`
|
||||
contain: layout style;
|
||||
}
|
||||
|
||||
/*
|
||||
* The scroller. artists-view and genres-view carry the same
|
||||
* markup with this rule; cover-grid had the class and no rule for
|
||||
* it, so nothing in the albums view scrolled — the container grew to
|
||||
* its full content height inside an overflow: hidden host and
|
||||
* everything past the first screenful was unreachable by wheel,
|
||||
* keyboard or scrollbar. Invisible on the eight-album fixture and
|
||||
* fatal on a real library: measured at 5 000 albums, 186 984 px of
|
||||
* content in a 772 px box.
|
||||
*
|
||||
* It is also what the dropdown's scroll manager was written
|
||||
* against — it saves and restores this element's scrollTop, which
|
||||
* was permanently 0.
|
||||
*/
|
||||
.grid-scroll-container {
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
contain: paint;
|
||||
}
|
||||
|
||||
/* ========================================
|
||||
* Album card
|
||||
* ======================================== */
|
||||
|
||||
Reference in New Issue
Block a user