Skip to content

feat: stretch app-list picker tap targets to the trailing button - #75

Merged
brendan-ch merged 3 commits into
mainfrom
feat/improved-app-list-selection
Sep 27, 2026
Merged

brendan-ch merged 3 commits into
mainfrom
feat/improved-app-list-selection

Conversation

@brendan-ch

Copy link
Copy Markdown
Owner

Summary

In the rule editor's app-list picker rows, the selection tap target now spans the whole row left of the trailing Edit/View button — icon, title, description, and the previously dead stretch in between — instead of only the icon+text content.

  • Toggle button label uses frame(maxWidth: .infinity, minHeight: 44) + contentShape(Rectangle()), same pattern as DayOfWeekPicker; the trailing Edit/View button stays separately tappable.
  • Row exposes its checked state via .accessibilityAddTraits(.isSelected) so VoiceOver (and the UI suite) can observe the toggle.
  • Doc comment in AppListLibraryView updated to match; new UI test added to AppListUITests.

Verification

  • New UI test AppListUITests.testPickerRowTouchTargetExtendsToEditButton: red first (failed on 36.7pt height + dead-span to Edit), green after the change — asserts taping the title toggles selection, tapping the previous dead zone toggles it back, height ≥ 44pt, and the row's maxX reaches the Edit button's minX.
  • Focused AppListUITests suite: 15/15 pass; full UI suite: 59/59 pass; full unit suite: 380 tests pass (iPhone 17 Pro simulator, iOS 26.5).
  • Code review pass: addressed the one MEDIUM (dead-zone tap re-anchored to row width, no reliance on HStack default spacing) and both LOWs (suite retry pattern for the nav hop; removed duplicated body comment).

Co-Authored-By: opencode-go (GLM, via opencode) noreply@opencode.ai

brendan-ch and others added 3 commits September 26, 2026 21:09
In the rule editor's app-list picker, the selection hit area previously
covered only the checkmark and text, leaving the gap before the trailing
Edit/View button untappable. The toggle button label now stretches across
the whole row (.frame(maxWidth: .infinity, minHeight: 44) +
.contentShape(Rectangle()), mirroring DayOfWeekPicker) so tapping the
title, description, or anywhere left of the button toggles selection, and
the row exposes its checked state as the .isSelected accessibility trait
for VoiceOver and the UI suite.

UI test taps the title and the previous dead zone to verify toggling
both ways, and asserts the 44pt minimum height and span to the Edit
button.

Co-Authored-By: opencode-go (GLM, via opencode) <noreply@opencode.ai>
Make the manual-UI-validation workflow bullet explicit about the
mechanism (RenderPreview snapshot or DeviceInteraction run with
screenshot inspection) so agents don't stop at passing tests.

Co-Authored-By: opencode-go (GLM, via opencode) <noreply@opencode.ai>
The stretched row frame defaulted to center alignment, floating the
checkbox and text inward and showing a gap before each checkbox.
Anchor the frame to .leading so content sits at the standard list inset
while the 44pt tap target still spans the row.

Co-Authored-By: opencode-go (GLM, via opencode) <noreply@opencode.ai>
@brendan-ch
brendan-ch merged commit 9a1d275 into main Sep 27, 2026
1 of 2 checks passed
@brendan-ch
brendan-ch deleted the feat/improved-app-list-selection branch September 27, 2026 13:43
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