# refactor\(web\): the pull request list's grouping helper lives in a logic module · PR \#22727 · pingdotgg/t3code

[View on GitCafe](https://git.cafe/pingdotgg/t3code/pull/22727)

Repository: [pingdotgg/t3code](https://git.cafe/pingdotgg/t3code)

Visibility: public

State: merged

Source repository: pingdotgg/t3code

Source branch: refactor/split-pull-requests-groups-logic

Target branch: refactor/split-pull-requests-speed-mode

Head commit: c5ebd2c16c91a64e4a8f08ee2db17230d6a0ad5e

[Discussion and reviews](https://git.cafe/pingdotgg/t3code/pull/22727)

[Commits](https://git.cafe/pingdotgg/t3code/pull/22727/commits?format=markdown)

[Files changed](https://git.cafe/pingdotgg/t3code/pull/22727/diffs?format=markdown)

## Description

---

`pullRequestGroups` is a plain function, not a hook, so it moves from `usePullRequestListView.ts` into `pullRequestListGroups.logic.ts`, with `pullRequestListEntryId`, which both it and the display-groups hook use. Code moved verbatim; no behavior change.

| File | Before | After |
|---|---|---|
| usePullRequestListView.ts | 434 | 320 |
| pullRequestListGroups.logic.ts | - | 127 |

Tests run: `tsc --noEmit` for apps/web, `vp lint` on the changed files, `vp test run src/reactCompilerCoverage.test.ts -t pullRequest`.

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

🤖 Generated with [Claude Code](https://claude.com/claude-code)

