mirror of
https://github.com/rcourtman/Pulse.git
synced 2026-10-24 20:52:51 +00:00
docs(frontend): record windowed item-height estimate sampling
Record the shared windowing controller's representative item-height measurement in the frontend-primitives and performance-and-scalability contracts. Grouped surfaces lead with a short group header, so sampling only the first sibling collapsed the estimate and desynced the mounted window from the scroll position; the controller now samples several leading siblings and keeps the tallest. Change-source: pulse-maintainer
This commit is contained in:
@@ -288,6 +288,14 @@ drawer state, and must never reconcile one row's nested value through another
|
||||
row or duplicate rows after sorting. Missing or duplicate keys retain the
|
||||
reference-keyed fallback.
|
||||
|
||||
The window's item-height estimate is measured from representative content, not
|
||||
the leading sibling alone. Grouped surfaces render a short group header before
|
||||
their first content row, and sampling only that header collapses the estimate so
|
||||
the mounted window advances far faster than the real scroll position and drops a
|
||||
group's rows mid-scroll. The controller samples several leading siblings and
|
||||
keeps the tallest, so uniform tables still measure their real row height while
|
||||
mixed group/content lists keep a content-scale estimate.
|
||||
|
||||
Shared workload, node, Docker-host, and resource-drawer history presentation
|
||||
keeps current readings separate from stored samples. A current metric may
|
||||
populate the legend while history is still being collected, but it must never
|
||||
|
||||
@@ -2242,6 +2242,12 @@ also reconciles unique string/number resource IDs into stable row proxies, so
|
||||
sparse live snapshots update fields without remounting an open inline drawer
|
||||
or discarding its tab and form state. Rows without a unique logical ID retain
|
||||
reference-keyed rendering rather than paying for guessed index identity.
|
||||
Spacer geometry and the inverse scroll-to-index mapping must share one
|
||||
representative item height. The controller samples several leading siblings and
|
||||
keeps the tallest, because a short leading group header sampled alone collapses
|
||||
the estimate and lets the mounted window outrun the real scroll position,
|
||||
turning a small scroll into many rows of unmounting and making an estate appear
|
||||
to lose rows.
|
||||
The workload guest-row path now follows the same pattern: the render shell
|
||||
stays in `frontend-modern/src/components/Workloads/GuestRow.tsx`, tooltip-backed
|
||||
cell presentation lives in `frontend-modern/src/components/Workloads/GuestRowCells.tsx`,
|
||||
|
||||
Reference in New Issue
Block a user