Skip to content

Move Completed checkbox next to plan picker; share bar with Books tab - #20

Merged
bmingles merged 1 commit into
mainfrom
claude/book-group-tags-bckdee
Jul 17, 2026
Merged

Move Completed checkbox next to plan picker; share bar with Books tab#20
bmingles merged 1 commit into
mainfrom
claude/book-group-tags-bckdee

Conversation

@bmingles

Copy link
Copy Markdown
Member

Summary

New ListToolbar component holds the Completed checkbox and, on /plan only, the PlanPicker chip — both were previously separate (checkbox in Layout's header, chip in its own bar). Also rendered on the Books tab (checkbox only, no chip), so both list views get the same toolbar treatment. /history doesn't get one, since HistoryList never reads api.showCompleted() — there'd be nothing for the checkbox to do there.

The checkbox is pushed to the far right via margin-left: auto on .showCompleted, which holds its position whether or not the chip is also present, so it doesn't visually shift between the Books and Plan tabs.

Layout's header grid — added in an earlier PR specifically to keep the (then title-embedded) plan picker from overlapping the checkbox — is now dead weight and reverted to a plain block layout, since neither the checkbox nor a picker lives in the header anymore.

Also mutes the disabled chevron on a ChapterGroup row that can't expand (chapters().length === 0 — e.g. a fully-read book while Completed is hidden), so a non-interactive row also reads as non-interactive.

Test plan

  • npm run build passes
  • tsc --noEmit passes
  • Verified: header no longer has a checkbox; Books and Plan tabs both show the toolbar bar with the Completed checkbox; the Plan tab additionally shows the plan chip alongside it (chip left, checkbox right, same row); History has neither; Settings unaffected
  • Verified the checkbox still toggles api.showCompleted() correctly from its new location
  • Reproduced a disabled (empty) accordion row and confirmed its chevron renders muted (color: var(--color-muted), opacity: 0.4) versus a normal row's full-opacity black chevron

Generated by Claude Code

New ListToolbar component holds the Completed checkbox and, on /plan
only, the PlanPicker chip — both previously separate (checkbox in
Layout's header, chip in its own bar). Also rendered on the Books tab
(checkbox only, no chip), so both list views get the same toolbar
treatment; History doesn't, since HistoryList never reads
api.showCompleted() and there'd be nothing for the checkbox to do
there.

The checkbox is pushed to the far right via margin-left: auto on
.showCompleted, which holds its position whether or not the chip is
also present, so it doesn't visually shift between the Books and Plan
tabs. Layout's header grid — added in an earlier PR specifically to
keep the (then title-embedded) plan picker from overlapping the
checkbox — is now dead weight and reverted to a plain block layout,
since neither the checkbox nor a picker lives there anymore.

Also mutes the disabled chevron on a ChapterGroup row that can't
expand (chapters().length === 0 — e.g. a fully-read book while
Completed is hidden), so a non-interactive row also reads as
non-interactive.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K2wCTwwVhhkSDxQxWo7UoH
@bmingles
bmingles merged commit 1226835 into main Jul 17, 2026
1 check passed
@bmingles
bmingles deleted the claude/book-group-tags-bckdee branch July 17, 2026 12:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants