Skip to content

feat(bench): real MUI X DataGrid Community comparator adapter - #121

Merged
blove merged 2 commits into
mainfrom
b2-mui
May 8, 2026
Merged

blove merged 2 commits into
mainfrom
b2-mui

Conversation

@blove

@blove blove commented May 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Phase 3 of 4 for Tier 1 B2 comparative bench.

Replaces the placeholder mui-adapter.tsx (shipped in Phase 1) with a real MUI X DataGrid Community v7 adapter:

  • Idiomatic out-of-the-box config: <DataGrid> with hideFooter, disableRowSelectionOnClick, default density, getRowId, sortable + filterable + resizable columns. No Premium-tier features.
  • scriptName-driven valueFormatter (scroll-with-format) and renderCell (scroll-with-render / scroll-with-heavy-render) branches mirror the AG Grid adapter shape.
  • Update API merges patches into row state by id (useState + map merge) — Community tier has no transaction API; this is the honest baseline called out in the spec.

Adds @mui/x-data-grid@^7, @mui/material@^5, @emotion/react@^11, @emotion/styled@^11 to apps/bench only — no leakage to @pretable/* public-surface packages.

Test surface

Smoke test asserts on .MuiDataGrid-virtualScroller (the same selector the bench-runtime profile uses as the viewport) with .MuiDataGrid-root documented inline as a fallback for class-name drift on minor MUI bumps.

What's NOT in this PR

  • Real TanStack adapter (Phase 2, parallel).
  • Comparative matrix run, runset evidence, H1–H15 re-evaluation, /bench page prose refresh (Phase 4).

Test plan

  • `pnpm -w typecheck` passes
  • `pnpm -w test` passes (incl. new `mui-adapter.test.tsx`)
  • `pnpm -w lint` 0 errors
  • `pnpm format` clean
  • `pnpm why @mui/x-data-grid` against public packages — 0 occurrences

🤖 Generated with Claude Code

blove and others added 2 commits May 8, 2026 16:48
Phase 3 of 4 for B2 comparative bench. Replaces the placeholder
mui-adapter shell from Phase 1 with a real MUI X DataGrid Community v7
implementation using idiomatic out-of-the-box config: <DataGrid> with
hideFooter, default density, getRowId, scriptName-driven valueFormatter
and renderCell branches for scroll-with-format / scroll-with-render /
scroll-with-heavy-render. No Premium features.

Adds @mui/x-data-grid@^7, @mui/material@^5, @emotion/react@^11,
@emotion/styled@^11 to apps/bench only — no leakage to @pretable/*
public-surface packages.

Smoke test asserts on .MuiDataGrid-virtualScroller (the same selector
the bench-runtime profile uses), with documented fallback to
.MuiDataGrid-root if a future jsdom/MUI bump drops the scroller node.

Spec: docs/superpowers/specs/2026-05-08-tier1-b2-comparative-bench-design.md

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Why: code review flagged the [runKey]-only dep array as a stale-closure
risk. The contract (bench-app's useCallback + ref-sync at render) makes
this safe; comment makes the contract explicit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vercel

vercel Bot commented May 8, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
pretable Ready Ready Preview, Comment May 8, 2026 11:51pm

@blove
blove enabled auto-merge (squash) May 8, 2026 23:50
@blove
blove merged commit 57e9f08 into main May 8, 2026
13 checks passed
@blove
blove deleted the b2-mui branch May 8, 2026 23:52
@github-actions

github-actions Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Vercel preview ready

Preview: https://pretable-frnozkbk5-cacheplane.vercel.app
Commit: f1c45c9b152cb17120952bc7e84dcc038c2cfeca

Updated automatically by the deploy-preview job.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant