Walkthrough
The pull-request screen now uses
usePullRequestTabControlfor its tab header. On iOS, the hook tracks list scroll offsets and positions an overlay control. On other platforms, it provides a compact header control without an overlay.Changes: Pull-request tabs
Layer / File(s) Summary Shared tab-control contract
apps/mobile/src/features/pull-requests/PullRequestTabControl.tsxThe shared implementation exports the tab-control types and hook. It provides a compact segmented-control header, no list shared values, and no overlay. iOS scroll-aware control
apps/mobile/src/features/pull-requests/PullRequestTabControl.ios.tsxThe iOS hook tracks section scroll offsets and positions the control using measured layouts. Its header includes accessible tab elements, and its overlay is hidden from accessibility. Pull-request screen integration
apps/mobile/src/features/pull-requests/PullRequestRouteScreen.tsxThe screen passes tab options and layout values to the hook, connects list scroll values, reports header layout, and renders the hook-provided header and conditional overlay. Priority: External image Low
Estimated code review effort: 3 (Moderate) | ~20 minutes
Change: Bug fix
Sequence Diagram(s)
mermaid1 sequenceDiagram 2 participant PullRequestRouteScreen 3 participant usePullRequestTabControl 4 participant AnimatedLegendList 5 PullRequestRouteScreen->>usePullRequestTabControl: provide tabs and header layout 6 PullRequestRouteScreen->>AnimatedLegendList: provide section shared scroll value 7 AnimatedLegendList->>usePullRequestTabControl: update section scroll offset 8 usePullRequestTabControl->>PullRequestRouteScreen: provide header and positioned overlay Suggested labels:
📱 Native ChangeSuggested reviewers:
juliusmarminge,macroscopeapp
Merge Risk: External image Minimal · up to 8462f
This change removes the tab control flicker on the iOS pull-request screen. VoiceOver users can still switch sections through the control underneath the accessibility proxies. No merge-blocking risk remains beyond normal verification on a physical device.
Pre-merge checks: Passed 4
Check name Status Explanation Title check Passed The title names the main change: removing a tab control flicker on the iOS pull request screen. It matches the changeset, which adds an iOS overlay control that stops the Overview/Activity control fro… Description check Passed The description follows the template. It has Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections explain the iOS 26 flicker and the overlay fix. The Verific… Linked Issues check Passed Check skipped because no linked issues were found for this pull request. Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request. Full details: Title check
Explanation
The title names the main change: removing a tab control flicker on the iOS pull request screen. It matches the changeset, which adds an iOS overlay control that stops the Overview/Activity control from being swapped during tab changes. The title uses the conventional commit format and is specific.
Full details: Description check
Explanation
The description follows the template. It has Problem, Change, Scope and approval, and Verification sections. The Problem and Change sections explain the iOS 26 flicker and the overlay fix. The Verification section gives before and after recordings, the simulators and iOS version tested, light and dark mode, tab changes while scrolled, pull to refresh, VoiceOver order, and the Android check. It also states what was not checked. The Scope and approval section says no issue exists and explains why the change is a small fix for an obvious visible bug on iOS only. That meets the template's exemption for a very small, focused fix, but the justification is brief. The description also includes the model and harness line that the template asks for. The template's HTML comments were removed, which is acceptable.
Finishing Touches
🧪 Generate unit tests (beta)
- Create a new PR
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.