82 lines
3.0 KiB
Markdown
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.
|