Skip to content

feat(ux): clearer list sort chips + a group-by control - #118

Merged
os-zhuang merged 1 commit into
mainfrom
feat/ux-list-sort-group
Jun 11, 2026
Merged

feat(ux): clearer list sort chips + a group-by control#118
os-zhuang merged 1 commit into
mainfrom
feat/ux-list-sort-group

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

UX-C — List sort clarity + group-by

Third of the UX improvements from the browser walkthrough.

Sort chips

  • Before: only the active chip showed state (a tiny 12px chevron); inactive chips gave no hint they were sortable, and the active colour was hardcoded #1e40af — nearly invisible on a dark chip.
  • After: every sortable chip carries an affordance, the active chip shows a real directional arrow (/), and the accent is theme-aware (#60a5fa dark / #1e40af light).

Group-by

  • New Group chip (Layers icon) opens a bottom sheet listing every column + "None".
  • Selecting a field sections the list with group headers + counts; the chip reflects the active field and highlights when grouping is on.
  • It overrides the view's configured grouping for the session. buildListItems gained an optional override arg: a field name to group by, null to force a flat list, undefined to defer to the view's grouping. Two new unit tests cover override + force-flat.

i18n

Wired the renderer's remaining hardcoded strings (search placeholder, empty + load-error states, retry) through i18n, and added records.{loadError,sortBy,groupBy,groupNone} in en/zh/ar.

Verified

Browser (375dp, dark, zh): tapped Status sort → blue outline + ; opened 分组 → grouped Tasks into COMPLETED (2) / IN_PROGRESS (1) / NOT_STARTED (4) with the chip showing "Status". Full suite: 1300 passing.

🤖 Generated with Claude Code

Sort chips only hinted their state on the active chip (a tiny chevron) and
the active colour was hardcoded #1e40af, washing out in dark mode. Now every
sortable chip carries an up/down affordance so it reads as sortable, the
active chip shows a real directional arrow, and both adapt to the theme
(accent = #60a5fa dark / #1e40af light).

Add a Group control: a chip that opens a sheet to group the list by any
column (or none). It overrides the view's configured grouping for the
session; `buildListItems` gained an optional override arg (a field name to
group by, null to force flat, undefined to defer to the view) — covered by
two new unit tests.

While here, wire the renderer's remaining hardcoded strings (search
placeholder, empty + load-error states, retry) through i18n, and add
records.{loadError,sortBy,groupBy,groupNone} in en/zh/ar.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit def65df into main Jun 11, 2026
@os-zhuang
os-zhuang deleted the feat/ux-list-sort-group branch June 11, 2026 09:48
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.

1 participant