refactor(web): the pull requests route only validates its search; the page lives under components#22706

merged1
refactor/split-pull-requests-list-hooks
refactor/split-pull-requests-thin-route
opened2d agobyJJulius Marminge
View on GitHubTwo-way sync enabledPR last imported 2d ago

The route file still held the whole page component. It now only validates the search params; the page moves verbatim into components/pullRequest/PullRequestsPage.tsx, reading search and navigation by route id (useSearch({ from: "/_chat/pull-requests" }), useNavigate({ from: "/pull-requests" })).

FileBeforeAfter
routes/_chat.pull-requests.tsx1,62778
PullRequestsPage.tsx-1,548

Part of the pull request page split stack: #22671 → #22672 → #22702 → #22703 → #22704 → #22705 → #22706.

Measured with the rc-init render counter against a dev server seeded from real data (136 pull requests listed), fresh browser per side, main 6a6c84f990 vs the stack top. Opening a PR detail: 6482 / 947 / 1249 renders on main vs 6331 / 1187 / 956 on the stack (noise, the first open includes data arriving). Switching Summary/Timeline/Code: 2-13 renders per switch on both sides. Holding Shift 3 times on the list: 14952 vs 14937 renders; the page and column no longer re-render (6 + 6 before, 0 after), the rows still do because their speed-mode prop really changes.

Tests run on this layer: tsc --noEmit for apps/web, vp lint on the changed files, vp test run src/reactCompilerCoverage.test.ts -t pullRequest (every new file compiles with 0 bailouts), vp test run src/components/pullRequest/pullRequestsRouteSearch.test.ts.

🤖 Generated with Claude Code

Checks

All checks passed

Added 1 commit

  • refactor(web): the pull requests route only validates its search; the page lives under componentsbcb74b5
Synced from GitHub

Approvability

Verdict: Approved at bcb74b5

Macroscope's review found this PR approvable — The PR extracts the existing pull-request page into a component while leaving the route responsible for search validation. The implementation is preserved, and the router hook changes use the correct route ID and URL path without introducing new runtime capability or changing defaults.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Team
  • Run ID: c06c4777-2031-4dc5-a0db-80f6bf9a0b13
📥 Commits

Reviewing files that changed from the base of the PR and between 3c959daf124dc5f0671a556da32e7d38ef7bd39a and bcb74b5d337e4a5c366e2599d9fca88a72b0a13d.

📒 Files selected for processing: 2
  • apps/web/src/components/pullRequest/PullRequestsPage.tsx
  • apps/web/src/routes/_chat.pull-requests.tsx

Limit details: You’ve used all 10 included reviews currently available.

📝 Walkthrough

The pull-request route now renders a shared PullRequestsPage component. The component manages pull-request queries, pagination, filtering, sorting, grouping, refresh and actions, and renders list and detail-panel states.

Changes: Pull Requests Page

Layer / File(s)Summary
Pull-request page behavior
apps/web/src/components/pullRequest/PullRequestsPage.tsx
Adds pull-request querying, pagination, caching, filtering, sorting, grouping, refresh handling, optimistic actions, and list and detail-panel rendering.
Route integration
apps/web/src/routes/_chat.pull-requests.tsx
Replaces the route-local implementation with the shared PullRequestsPage component.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Refactor

Suggested reviewers: maria-rcks

Merge Risk: ⚪ Minimal · up to bcb74

This is a code move with no evidence of changed behavior, so merge-readiness risk is minimal.

Pre-merge checks: Passed 3 · Failed 1

Failed Failed checks: 1 warning

Check nameStatusExplanationResolution
Description checkWarningThe description explains the refactor and lists focused verification results, but it does not use the required Problem, Change, Scope and approval, and Verification sections. It also omits issue or ma…Rewrite the description using all required template sections. Add the problem and expected behavior, explain the change, provide the triaged issue or explicit maintainer approval with the approval comment, and include before/after UI screen…
Passed Passed checks: 3 passed
Check nameStatusExplanation
Title checkPassedThe title clearly describes the main change: the pull-request page moved from the route into a shared component while the route retains search validation.
Linked Issues checkPassedCheck skipped because no linked issues were found for this pull request.
Out of Scope Changes checkPassedCheck skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description explains the refactor and lists focused verification results, but it does not use the required Problem, Change, Scope and approval, and Verification sections. It also omits issue or maintainer-approval evidence and UI screenshots required for this UI change.

Resolution

Rewrite the description using all required template sections. Add the problem and expected behavior, explain the change, provide the triaged issue or explicit maintainer approval with the approval comment, and include before/after UI screenshots. Keep the detailed verification commands and results.

✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Usage-based review receipt

Note

This review was completed with usage-based billing: files reviewed beyond your plan's included limits are billed at $0.25/file. View usage-based billing.

Comment @coderabbitai help to get the list of available commands.