Files
kandev/docs/plans/github-mobile-parity/task-02-view-picker.md
T
2026-09-12 10:06:05 +02:00

82 lines
3.0 KiB
Markdown

---
id: "02-view-picker"
title: "Mobile Views picker"
status: complete
wave: 2
depends_on: ["01-query-recovery"]
plan: plan.md
requirements:
- REQ-INTEGRATIONS-GITHUB-MOBILE-001
acceptance_criteria:
- AC-INTEGRATIONS-GITHUB-MOBILE-001.2
- AC-INTEGRATIONS-GITHUB-MOBILE-001.5
system_design:
- ../../specs/integrations/system-design/github-dashboard-mobile.md
---
# Mobile Views picker
## Summary and scope
Implement the picker composition section of the [design](../../specs/integrations/system-design/github-dashboard-mobile.md), including its focused regressions and translations. Own only the files listed below and required adjacent tests.
## Out of scope
Other work-order outcomes and changes to persistence or provider API contracts.
## Acceptance
- The referenced acceptance criteria pass through the real interaction/state boundary.
- Failure paths retain prior state and permit recovery; desktop behavior remains intact.
- Required targeted checks pass and results are recorded.
## ASCII UI preview
### UI-02: Mobile Views picker
```text
GitHub
[Views: Review requested v]
Drawer: Views [Done]
[Pull requests] [Issues]
Inbox / Created / Saved (scroll)
[Save current query] (fixed footer)
```
See the [combined preview](plan.md#ascii-ui-preview). Geometry and hierarchy are structural; ASCII spacing is illustrative.
## Verification
From the repository root:
```bash
(cd apps/web && pnpm e2e:run --project mobile-chrome tests/github/mobile-github-sidebar.spec.ts)
```
Hook regressions use Red-Green-Refactor. Run new/changed tests after the final source edit.
## Files likely touched
Paths relative to apps/web: `app/github/github-page-client.tsx`, `components/github/my-github/mobile-views-picker.tsx`, `presets-sidebar.tsx`, the integration toolbar title slot, and `e2e/pages/mobile-github-page.ts`.
## Dependencies
Task 01-query-recovery.
## Risks
Keep kind switches open, retain explicit selection/default behavior, update every mobile test using the old closing behavior.
## Parallelism
sequential
## Inputs
[Requirements](../../specs/integrations/requirements/github-dashboard-mobile.md), paired design, existing source and tests named above.
## Results
Named Views control opens an inset bottom drawer. Kind switching stays open, final selection/Done closes, focus returns, and a 20-view collection scrolls beneath fixed header/footer controls at 320px. Eight GitHub query/recovery browser scenarios pass; desktop scope-bar scenarios also pass.
Open PR revalidation on 2026-09-11 exposed a drawer/save focus race. A slowed-close regression first failed because the form opened before the drawer released focus. Opening from the drawer's close/focus callback fixes the overlap, and the existing focus-return helper restores the initiating control after Cancel. All seven scenarios in `mobile-github-sidebar.spec.ts` pass after this remediation, including saved-repository selection, failed-save retry, and the new focus regression. Final delivery commands are recorded in the plan.