Repository navigation
fix(plugin-grid): fold a row's inline primary action into its menu while the table overflows with it - #33441
Conversation
…ile the table overflows with them Claude-Session: https://claude.ai/code/session_01FEkQ5osPMA12JX9fGcBzR3 Co-Authored-By: Claude <noreply@anthropic.com>
…t data column in view Claude-Session: https://claude.ai/code/session_01FEkQ5osPMA12JX9fGcBzR3 Co-Authored-By: Claude <noreply@anthropic.com>
…he inline button Claude-Session: https://claude.ai/code/session_01FEkQ5osPMA12JX9fGcBzR3 Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FEkQ5osPMA12JX9fGcBzR3 Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FEkQ5osPMA12JX9fGcBzR3 Co-Authored-By: Claude <noreply@anthropic.com>
|
domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD 席位核对Verdict: ACCEPT · head
|
|
domain:ui#1 · os-project-manager · session_01FEkQ5nWoa1Ze1QzjRTSYXD Landing · head
State: ready + auto-merge. |
⛔ merge queue 构建失败 — 先分诊,再决定要不要重排队列构建 43645886119 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集), 分类: 失败的 job(日志抽取,best effort):
跨 PR 相同签名(24h,按失败测试文件聚合):
历史信号:
分诊清单:
Generated by Claude Code · merge-queue-triage workflow (#4859) |
Requested by Leehom · project thread
Fixes #33230
Clause-②: no
Metadata-protocol: none
维护者速读
What changes
ObjectGridpins its Actions column to the right edge of the table's scroll box. Avariant: 'primary'row action draws as an inline button beside the row's "⋮" trigger, and that button roughly doubles the pinned column. In a record drawer's enlarged related list the content is 622 px wide at the default drawer size, and the extra width alone turns a table whose data columns fit into one that overflows. The pinned column then sits over the last data column (Status) at rest.The grid now draws inline row buttons only while the table fits its scroll box with them.
data-row-actions-inline="folded"while folded, so the state is readable in the DOM.No export, prop or authored key changes.
maxInlineRowActionsstays a non-author surface.Producer, measured on origin/main before the fix. It is the pinned column's width, not the scroll box's reservation. The box does reserve the column: its scroll width includes it, and scrolling to the end reveals Status. At rest, though, the 139 px column (with the inline button) covers the last data column, and
elementFromPointat the Status cell's centre answered the inline Allocate button (box 900 px, table 954 px, Status spanning 735 to 815 under the column from 761). Menu-only the column is 68 px.Tests
ui/e2e/related-list-pinned-actions-width.spec.tsmounts the realRelatedListenlarged face (thenobject-grid,data-tableand the row menu) in Chromium, with Vite-bundled sources and compiled Tailwind, inside a frame of the drawer's or the list page's width. Reachability is read from layout withelementFromPoint, and the menu path is driven with real clicks.Readings, at this head
Ablation at 3afff0c (the fold's decision made a no-op, through scripts/ablation-replace.mjs)
Acceptance notes
Verification
Head
ee03c81e. The gate list comes fromdispatch-gates --commandson this diff (37 families). Each exit code was captured before any pipe, then reconciled:dispatch-gates --ranreads 37 derived, 37 run, 0 NOT-MEASURED, 0 UNRUN, plus 4 ui runs outside the derivation. The workspace packages were built first (turbo run buildover./packages/*, exit 0).The first
uiscripts run went red on one test,e2e-type-check.test.ts"imports no workspace package". The pin's page entry named@object-ui/*packages in its source string. It now names their sources by path, and the whole suite reran green (171 files passed, 2 skipped). The gates that read the spec file reran after that change.Local gate record (COMMAND :: exit N)
CI families outside this list (the e2e chromium run that executes the new pin, the type-check lanes and the wide-population families) are read from this PR's check runs.
Generated by Claude Code