Show compact PR number badges in mobile thread rows#3827
Conversation
- Add shared PR presentation for compact #number labels - Render PR state icons with theme-aware colors Co-authored-by: codex <codex@users.noreply.github.com>
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
ApprovabilityVerdict: Approved This PR makes a minor UI presentation change to how PR badges are displayed in mobile thread rows - changing from text like 'PR open' to compact '#1234' format with an icon. The changes are self-contained, include tests, and don't affect runtime behavior beyond visual display. The open accessibility comment is a valid improvement suggestion but not a blocking issue. You can customize Macroscope's approvability policy. Learn more. |
- Add accessible change request labels that say merge request for GitLab - Keep compact thread list labels as PR numbers
| className={`${compact ? "text-sm" : "text-xs"} font-t3-medium ${ | ||
| selected ? "text-white" : pr.textClassName | ||
| }`} | ||
| <View |
There was a problem hiding this comment.
🟡 Medium threads/thread-list-items.tsx:519
The PR badge View at line 520 sets accessibilityLabel but is not an accessibility element — in React Native a View without accessible={true} is not exposed to VoiceOver/TalkBack, and its accessibilityLabel is ignored. Since the parent Pressable already announces the thread title, the PR status is never read to screen-reader users. Consider adding accessible and accessibilityRole="text" to the View so the PR information is exposed as a separate element, or fold the PR label into the parent's accessibilityLabel.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @apps/mobile/src/features/threads/thread-list-items.tsx around line 519:
The PR badge `View` at line 520 sets `accessibilityLabel` but is not an accessibility element — in React Native a `View` without `accessible={true}` is not exposed to VoiceOver/TalkBack, and its `accessibilityLabel` is ignored. Since the parent `Pressable` already announces the thread title, the PR status is never read to screen-reader users. Consider adding `accessible` and `accessibilityRole="text"` to the `View` so the PR information is exposed as a separate element, or fold the PR label into the parent's `accessibilityLabel`.
… + desktop packaging) Merge upstream/main into the fork. Notable upstream changes: Clerk stack upgrade (pingdotgg#3821), mobile offline persistence + preferences refactor (pingdotgg#3795), mobile PR number badges + a11y (pingdotgg#3827, pingdotgg#3828), font embedding (pingdotgg#3823), worktree metadata preservation during branch sync (pingdotgg#3822), codex reasoning labels (pingdotgg#3824), desktop native optional dependency packaging (pingdotgg#3816). Preserved fork features across conflicts: iOS personal-team build support, Material3 dynamic accent theming, verbose work-log, mobile visible queue, MarkdownCodeBlock, native Android composer/header layout, and the fork's asar:false + afterPack/afterSign node_modules copy hooks for desktop packaging. Lockfile regenerated on pnpm 11 (upstream lock as base).
Summary
#numberlabels.Testing
vp checkvp run typecheckvp testNote
Low Risk
UI-only mobile list presentation with no auth, data, or API changes; behavior change is limited to how PR text appears on screen.
Overview
Mobile thread list rows now show pull requests like desktop: a PR icon plus
#<number>instead of provider-style text such asPR merged.presentThreadPrmoves intothread-pr-presentation.ts. Visible labels are always#number; accessibility still uses provider terms (e.g. merge request on GitLab). State-based Tailwind text classes are unchanged.ThreadListRowadds an SVGPullRequestIcon,pullRequestTintColorfor open/merged/closed in light and dark mode, and wraps the badge in a row withaccessibilityLabel. The icon is white when the sidebar row is selected; size follows compact vs sidebar layout.Tests cover the new label format and GitLab accessibility wording.
Reviewed by Cursor Bugbot for commit 7ecb46e. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Show compact PR number badges with state-tinted SVG icons in mobile thread list rows
PullRequestIconSVG component and apullRequestTintColorutility that maps PR state (open/merged/closed) and light/dark color scheme to a hex tint color.#<number>badge that prepends the new icon, tinted by state and theme (white when selected).accessibilityLabelfield to PR badges combining number, provider-specific terminology ("pull request" vs "merge request"), and state.presentThreadPrnow returns#<number>as the label instead of the previous provider/state chip text; any consumer relying on the old label format will see different output.Macroscope summarized 7ecb46e.