fix(ui): make the queue button say whether the queue is open #79

Closed
logan wants to merge 0 commits from fix/queue-toggle-state into main
Collaborator

Closes #26.

The toggle looked the same open and closed, and carried no aria-expanded, no aria-controls and no drawn state — so the only way to know what pressing it would do was to look at the other side of the window.

The state is reflected from the panel, not kept beside the click. This button is not the only thing that opens the queue: now-playing-view sets the same open attribute, because it hides the bar this button lives in. A flag maintained by the click handler would be right until something else opened the panel and then quietly wrong. The panel’s attribute stays the one fact and a MutationObserver reflects it.

Tests. e2e/specs/queue-toggle-state.spec.ts — the reported/drawn state round-trips, and the second case opens the panel the way now-playing-view does and asserts the button follows. Note the assertion is on background-color: the pointer is still on the button after a click and :hover paints the same accent the open state does, so a colour comparison passes on the broken build and proves nothing.

Whole chromium e2e suite: 114 passed.

Closes #26. The toggle looked the same open and closed, and carried no `aria-expanded`, no `aria-controls` and no drawn state — so the only way to know what pressing it would do was to look at the other side of the window. **The state is reflected from the panel, not kept beside the click.** This button is not the only thing that opens the queue: `now-playing-view` sets the same `open` attribute, because it hides the bar this button lives in. A flag maintained by the click handler would be right until something else opened the panel and then quietly wrong. The panel’s attribute stays the one fact and a `MutationObserver` reflects it. **Tests.** `e2e/specs/queue-toggle-state.spec.ts` — the reported/drawn state round-trips, and the second case opens the panel the way `now-playing-view` does and asserts the button follows. Note the assertion is on `background-color`: the pointer is still on the button after a click and `:hover` paints the same accent the open state does, so a colour comparison passes on the broken build and proves nothing. Whole chromium e2e suite: 114 passed.
logan added 1 commit 2026-08-18 15:15:38 +00:00
fix(ui): make the queue button say whether the queue is open
CI / check (push) Skipped
CI / e2e (push) Skipped
CI / check (pull_request) Successful in 2m27s
CI / e2e (pull_request) Canceled after 5m49s
a2ff0aed4c
It looked identical in both states, so the only way to tell what
pressing it would do was to look at the other side of the window and
infer it -- and for anyone not looking there was nothing to infer from:
no aria-expanded, no aria-controls, no drawn state.

The state is reflected *from the panel* rather than kept beside the
click. This button is not the only thing that opens the queue --
now-playing-view sets the same attribute, because it hides the bar the
button lives in -- so a flag maintained by the click handler would be
right until something else opened the panel and then quietly wrong.
The panel's `open` attribute stays the one fact; a MutationObserver
reflects it.

Refs #26
Author
Collaborator

Rolled into #83 and closed here — the commit is preserved as a merge on that branch, so it lands with its authorship and this PR's diff intact.

Batched deliberately: release.yml cuts a release on every push to main, so merging these one at a time would produce seven or eight releases for one afternoon of small fixes. #83 is one push and therefore one version.

The full gate was run against the combined tree rather than per branch: make lint (3 configs), make test (3 configs, -race), make ui-test (836), make e2e chromium (114), plus bindings/skill/commit checks.

Rolled into #83 and closed here — the commit is preserved as a merge on that branch, so it lands with its authorship and this PR's diff intact. Batched deliberately: `release.yml` cuts a release on **every** push to `main`, so merging these one at a time would produce seven or eight releases for one afternoon of small fixes. #83 is one push and therefore one version. The full gate was run against the combined tree rather than per branch: `make lint` (3 configs), `make test` (3 configs, `-race`), `make ui-test` (836), `make e2e` chromium (114), plus bindings/skill/commit checks.
logan closed this pull request 2026-08-18 15:44:25 +00:00

Pull request closed

Please reopen this pull request to perform a merge.
Sign in to join this conversation.