Row affordances become buttons; drop dead and duplicated rows #253
Notifications
Due Date
No due date set.
Blocks
Depends on
Reference: yolo/arr#253
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Six fixes to how rows read in the library deck and the search results
(DESIGN.md §9.2, §9.6). They land together because they all edit the row
helpers in
web/src/main.tsand the row block inweb/src/style.css.The affordance does not read as a button.
.row-addrendersaddon TMDBhits,
episodeson series rows andopenon movie rows as bare accent text.Give it the
.controllook — border, radius, the--control-hrail the chipsalready sit on. It stays a
<span>: the row itself is a<button>, so anested button is invalid markup and would steal the row's click. Nothing about
the interaction changes; the whole row is still what is clicked.
addis in the wrong place.tmdbRow(web/src/main.ts:1013-1029) appendsit between the language chip and the rating and trailer chips, so the line reads
en · ADD · 7.7 · trailer. It belongs last, whereopenandepisodesalready are.
A TMDB hit already in the library renders twice — once under "in library",
once under "on tmdb" where it is
aria-disabledand does nothing. Drop it fromthe TMDB group entirely. The
inLibraryset is built from the same response'slibrary hits, so anything filtered out is guaranteed to be visible in the group
above. Hide the TMDB group and correct its count when filtering empties it. The
inLibrarybranch oftmdbRowand itsaria-disabledreturn path become deadcode and go with it.
Series have no poster in list mode.
seriesRow(web/src/main.ts:2711)builds its row by hand and never calls
rowPoster, whilelibraryRowusesrichRow()and does. Series rows in the library list are the only rows in theapp with a hole where the poster goes. Use
richRow().The hero has a border.
.movie-heroon both title pages also carries.module, whose border and inset highlight fight the backdrop that bleeds tothe rail. Drop the border on the hero specifically.
availablebecomes a green check. The word is the longest chip on a denseepisode list and says the least — a file is either there or it is not. Replace
it with a check glyph tinted
--signal-ok, keeping the word in the chip'saria-label.This contradicts DESIGN.md §4.2 — "The word stays present in every chip, so
state survives with colour removed" — so amend §4.2 in this issue. The
amendment: a check glyph is a shape, not only a hue, so the greyscale read
survives; the rule stands for chips whose state is a word with no unambiguous
glyph, which is every status chip §4.2 lists. Scope the change to
mediaStateChip, not to the derived-status chips.Depends on: #252