Skip to content

fix(deps): update @tanstack/react-virtual to ^3.14.21 - #15559

Merged
pedrobonamin merged 1 commit into
mainfrom
cody/tanstack-react-virtual-3-14-21-60bf
Oct 23, 2026
Merged

pedrobonamin merged 1 commit into
mainfrom
cody/tanstack-react-virtual-3-14-21-60bf

Conversation

@stipsan

@stipsan stipsan commented Oct 22, 2026

Copy link
Copy Markdown
Member

Description

Bumps @tanstack/react-virtual ^3.14.19 → ^3.14.21 (@tanstack/virtual-core 3.19.4 → 3.19.6) together with the unit-test fix the bump needs. Supersedes #15438, where the same three unit test shards failed on every rerun.

Root cause. @tanstack/virtual-core 3.19.6 (TanStack/virtual#1326) measures the scroll viewport with clientWidth/clientHeight instead of offsetWidth/offsetHeight, so borders and scrollbars no longer inflate it and end-aligned items are not obscured. jsdom has no layout engine, so every element dimension reads 0 and the virtualizer renders no rows unless a test stubs the dimension it reads; our jsdom tests stubbed only the offset pair (the approach TanStack recommended in virtual#641), so with 3.19.6 every virtualized list under test rendered empty (Unable to find an element by: [data-testid="table-row"], [data-testid="button"]). Studio code is not affected: in a real browser clientHeight is non-zero, and the browser-mode and e2e suites were already green on #15438. The tests were relying on an implementation detail of the library.

Fix. test/testUtils/setupVirtualListEnv now stubs clientWidth/clientHeight in addition to offsetWidth/offsetHeight (rows are still measured with the offset pair, and CommandList reads it for its hidden-scroll-element check), and CommandList.test.tsx uses that shared helper instead of its own copy of the stub. This is the same adjustment TanStack made to its own jsdom setup in #1326. pnpm install also pruned the now-stale @tanstack/*@<old version> entries from minimumReleaseAgeExclude (minimumReleaseAgeExcludePrune: true).

What to review

  • packages/sanity/test/testUtils/setupVirtualListEnv.ts: the stubbed property set and the restore (clientWidth/clientHeight live on Element.prototype in jsdom, so the shadowing HTMLElement.prototype property is deleted rather than restored from a descriptor).
  • CommandList.test.tsx: the inline stub is replaced by setupVirtualListEnv(undefined, 800, 800), the same dimensions it used before.
  • The lockfile diff is identical to chore(deps): update dependency @tanstack/react-virtual to ^3.14.21 #15438.

Testing

Reproduced the CI failure locally with the bump alone, then with the fix:

Notes for release

N/A: dependency bump and test-only fix.


Open in Web Open in Cursor 

@stipsan
stipsan requested a review from a team as a code owner October 22, 2026 14:46
@stipsan
stipsan requested review from pedrobonamin and removed request for a team October 22, 2026 14:46
@vercel

vercel Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
auth-test-studio Ready Ready Preview Oct 22, 2026 4:25pm UTC
page-building-studio Ready Ready Preview Oct 22, 2026 4:25pm UTC
studio-diagnostics Ready Ready Preview Oct 22, 2026 4:25pm UTC
studio-radar Ready Ready Preview Oct 22, 2026 4:25pm UTC
studio-storybook Ready Ready Preview Oct 22, 2026 4:25pm UTC
test-studio Ready Ready Preview Oct 22, 2026 4:25pm UTC
test-studio-preview-iframe Ready Ready Preview Oct 22, 2026 4:25pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
variants-2-0-studio Ignored Ignored Preview Oct 22, 2026 4:25pm UTC

Request Review

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

@socket-security

socket-security Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatednpm/​@​tanstack/​react-virtual@​3.14.19 ⏵ 3.14.211001006998 +1100

View full report

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

📚 TypeDoc Generation Result

✅ TypeDoc generated successfully!

  • File size: 8.9M
  • Total exports: 1124
  • Artifact: sanity-typedoc-bcb5168c5724846f1b2f88523439cc35c3bda26e

The TypeDoc JSON file has been generated and validated. All documentation scripts completed successfully.

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

📦 Bundle Stats — sanity

Compared against main (1c6e955d) · v6.20.0 (npm)

sanity

Metric Value vs main (1c6e955) vs v6.20.0
Internal (raw) 4.64 MB - +25.6 KB, +0.5%
Internal (gzip) 1.16 MB - +8.5 KB, +0.7%
Bundled (raw) 13.76 MB +12.9 KB, +0.1% +35.4 KB, +0.3%
Bundled (gzip) 3.27 MB +3.3 KB, +0.1% +10.5 KB, +0.3%
Import time 976ms -1ms, -0.1% -19ms, -1.9%

bin:sanity

Metric Value vs main (1c6e955) vs v6.20.0
Internal (raw) 7.1 KB - -
Internal (gzip) 2.9 KB - -
Bundled (raw) 7.1 KB - -
Bundled (gzip) 2.8 KB - -
Import time 3ms +0ms, +2.1% -0ms, -0.3%

🗺️ View treemap · Artifacts

Details
  • Import time regressions over 10% are flagged with ⚠️
  • Sizes shown as raw / gzip 🗜️. Internal bytes = own code only. Total bytes = with all dependencies. Import time = Node.js cold-start median.

@stipsan stipsan added the ✨ ai PR authored by an AI agent (🤖 bot is for CI automation/Renovate) label Oct 22, 2026 — with Cursor
@github-actions

Copy link
Copy Markdown
Contributor

Visual regression coverage

No changed UI files (packages/**/src/**/*.tsx, *.css.ts).

@github-actions

github-actions Bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 57.33% 51390 / 89628
🔵 Statements 52.9% 69743 / 131825
🔵 Functions 51.84% 10472 / 20197
🔵 Branches 47.18% 40586 / 86021
File CoverageNo changed files found.
Generated in workflow #76331 for commit 000e935 by the Vitest Coverage Report Action

Bumps @tanstack/react-virtual ^3.14.19 -> ^3.14.21 (@tanstack/virtual-core
3.19.4 -> 3.19.6) and repairs the jsdom unit tests the bump broke.

virtual-core 3.19.6 (TanStack/virtual#1326) measures the scroll viewport
with clientWidth/clientHeight instead of offsetWidth/offsetHeight so that
borders and scrollbars no longer inflate it. jsdom has no layout engine, so
every dimension reads 0 and the virtualizer renders no rows unless the
tests stub the dimensions it reads. `setupVirtualListEnv` and the
CommandList test only stubbed the offset pair, so every virtualized list
under test rendered empty. The stub now covers the client pair too (rows
are still measured with offset dimensions), and the CommandList test uses
the shared helper instead of its own copy of the stub.

pnpm pruned the now-stale `@tanstack/*@<old version>` entries from
`minimumReleaseAgeExclude` (`minimumReleaseAgeExcludePrune`).

Supersedes #15438.
@pedrobonamin
pedrobonamin merged commit 4538849 into main Oct 23, 2026
89 checks passed
@pedrobonamin
pedrobonamin deleted the cody/tanstack-react-virtual-3-14-21-60bf branch October 23, 2026 07:42

This branch was successfully deployed

7 active deployments
Preview – test-studio — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – studio-storybook — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – page-building-studio — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – studio-radar — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – auth-test-studio — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – studio-diagnostics — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Preview – test-studio-preview-iframe — 000e935f Deployed Oct 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ ai PR authored by an AI agent (🤖 bot is for CI automation/Renovate)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants