Uh oh!
There was an error while loading. Please reload this page.
fix(fields): cap multi-value lookup cells at 3 chips + a "+N" overflow chip - #6292
Merged
Conversation
…w chip A multi-value lookup cell rendered EVERY referenced record as its own chip inside a flex-wrap container, so a cell referencing a large set (a production scheduling row carried 60+ work objects) wrapped one chip per line and grew a single grid row to several screens of height, blowing the page layout apart. LookupCellRenderer's array branch now shows the first 3 chips and collapses the rest into one muted "+N" chip — the same cap UserCellRenderer has always applied to its avatar stack in this file. The hidden display names stay reachable through the overflow chip's title, resolved through the same option/label/record-name path as the visible chips, and the visible chips keep their per-record links (#4336). Cells with 3 or fewer references render exactly as before. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GXQ8Tkj43hUdjpxuaRiJ4E
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A multi-value lookup cell rendered EVERY referenced record as its own chip inside a
flex-wrapcontainer. In a production grid (排班计划, a scheduling list), one row's 作业对象 column referenced 60+ work objects — the chips wrapped one per line and a single row grew to several screens of height, blowing the page layout apart.The uncapped array branch lives in
LookupCellRenderer, which every read surface resolves throughgetCellRenderer('lookup'): grid, record detail sections, related lists, gallery, kanban, report and dashboard tables were all affected.Fix
The array branch of
LookupCellRenderernow renders the firstMAX_LOOKUP_CELL_CHIPS(3) chips and collapses the rest into one muted+Nchip — the same capUserCellRendererhas always applied to its avatar stack in the same file.+Nchip'stitlelists the hidden references' display names, resolved through the same option → resolved-name → opaque-id path as the visible chips, so the collapsed set stays reachable on hover.FieldEditWidget, detail inline edit and forms viaLookupField) read the raw field value and are untouched.Verification
lookupCellOverflow.test.tsx: 60 values → 3 chips ++57; hidden names on the overflow chip'stitle; no overflow chip at ≤3 values; primitive-id arrays capped the same way.packages/fieldssuite (112 files / 1843 tests),plugin-formsuite (64 files / 638 tests), and the grid + detail inline-edit suites (93 tests) all green.f_lookupsrecord: read view rendersZTLW-A.1 ZTLW-A.2 ZTLW-A.3 +57on one line; inline edit expands all 60 values and a save round-trip keeps all 60; the edit dialog shows all 60 and saving a name-only change leaves the reference set intact; create-form picking works and stores exactly the picked ids.Changeset included (
@object-ui/fieldspatch).🤖 Generated with Claude Code
https://claude.ai/code/session_01GXQ8Tkj43hUdjpxuaRiJ4E
Generated by Claude Code