@react-x11/components 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tree/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tree/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-x11/components",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Components for react-x11 that do not belong in the core package",
5
5
  "keywords": [
6
6
  "react",
@@ -1,10 +1,11 @@
1
1
  // Where every row starts, when rows are not all the same height.
2
2
  //
3
- // **Shared between `<Tree>` and `<Table>`** — the one piece of machinery
4
- // both virtualizers stand on, promoted here from the vendored copy the
5
- // table briefly carried (docs/prd-table.md records the decision). "No
6
- // component imports another component" holds: this is shared code, not a
7
- // component, and both import it.
3
+ // **Shared between `<Tree>` and `<Table>`** — the first piece of machinery
4
+ // both virtualizers stand on (`./timers.ts` and `./scroll.ts` are the other
5
+ // two), promoted here from the vendored copy the table briefly carried
6
+ // (docs/prd-table.md records the decision). "No component imports another
7
+ // component" holds: this is shared code, not a component, and both import
8
+ // it.
8
9
  //
9
10
  // **Deliberately not a shared *module*.** The directory has no `index.ts`,
10
11
  // so it has no subpath, no docs page, and is not public API — the repo's
@@ -67,8 +68,14 @@ export class RowHeights {
67
68
  private rows: readonly Keyed[] = [];
68
69
  /** Fenwick tree over the heights, 1-based. */
69
70
  private tree: number[] = [0];
70
- /** What an unmeasured row is assumed to be. */
71
+ /** What an unmeasured row is assumed to be, effectively: the caller's
72
+ * `base`, until `adapt` has seen enough real rows to know better. */
71
73
  private estimate = 1;
74
+ /** The estimate the caller declared. A caller changing it is a caller
75
+ * changing their mind, and it wins back over adaptation. */
76
+ private base = 1;
77
+ /** Running sum of the measured map's values, so `adapt` is O(1). */
78
+ private sum = 0;
72
79
  /** Largest power of two <= n, for the O(log n) descent in `indexAt`. */
73
80
  private power = 0;
74
81
  /** Set when a measurement could not be applied in place, so the next
@@ -76,7 +83,8 @@ export class RowHeights {
76
83
  private dirty = false;
77
84
 
78
85
  constructor(estimate: number) {
79
- this.estimate = Math.max(1, estimate);
86
+ this.base = Math.max(1, estimate);
87
+ this.estimate = this.base;
80
88
  }
81
89
 
82
90
  private heightOf(index: number): number {
@@ -94,11 +102,23 @@ export class RowHeights {
94
102
  */
95
103
  sync(rows: readonly Keyed[], estimate: number): void {
96
104
  const next = Math.max(1, estimate);
97
- if (!this.dirty && this.rows === rows && next === this.estimate) return;
98
- this.dirty = false;
105
+ if (next !== this.base) {
106
+ // The caller changed their declared estimate: that wins back over
107
+ // whatever `adapt` had learnt — it is the same caller telling us the
108
+ // rows changed character.
109
+ this.base = next;
110
+ this.estimate = next;
111
+ this.dirty = true;
112
+ }
113
+ if (!this.dirty && this.rows === rows) return;
99
114
  this.rows = rows;
100
- this.estimate = next;
101
- const n = rows.length;
115
+ this.rebuild();
116
+ }
117
+
118
+ /** Rebuild the tree from the measured map and the current estimate. */
119
+ private rebuild(): void {
120
+ this.dirty = false;
121
+ const n = this.rows.length;
102
122
  // Build in O(n): write each height at its own slot, then push every slot
103
123
  // into its parent. The textbook loop of point-updates is O(n log n) and
104
124
  // arrives at the same tree.
@@ -122,6 +142,7 @@ export class RowHeights {
122
142
  const before = this.measured.get(id);
123
143
  if (before === height) return false;
124
144
  this.measured.set(id, height);
145
+ this.sum += height - (before ?? 0);
125
146
  if (this.rows[index]?.id !== id) {
126
147
  // The caller's index is stale — the rows moved under a measurement
127
148
  // that was already in flight. Applying a delta at the wrong slot would
@@ -188,6 +209,16 @@ export class RowHeights {
188
209
  return Math.max(0, Math.min(n - 1, index));
189
210
  }
190
211
 
212
+ /**
213
+ * Whether anything has ever been measured — O(1), and the question a
214
+ * component that may not measure at all has to ask before it waits on a
215
+ * measurement. `measuredCount` answers a different, costlier question:
216
+ * how many of the rows *currently indexed* have one.
217
+ */
218
+ hasMeasurements(): boolean {
219
+ return this.measured.size > 0;
220
+ }
221
+
191
222
  /** How many of the current rows have a real measurement. */
192
223
  measuredCount(): number {
193
224
  let count = 0;
@@ -195,6 +226,34 @@ export class RowHeights {
195
226
  return count;
196
227
  }
197
228
 
229
+ /**
230
+ * Let the estimate learn from the rows that have been measured.
231
+ *
232
+ * The fixed guess is why a measured list converges slowly: every row not
233
+ * yet seen is assumed `estimate`, the scrollbar believes the sum, and each
234
+ * newly measured row moves everything. Once enough rows have real numbers,
235
+ * their mean is a far better guess for the rest — one O(n) rebuild brings
236
+ * every unmeasured offset close to where measuring will find it, so the
237
+ * corrections that follow are small.
238
+ *
239
+ * Returns whether anything changed. **Every offset of every unmeasured row
240
+ * moves when it does** — the caller owns keeping what is on screen still,
241
+ * the same anchor arithmetic a measurement pass does. Deliberately not
242
+ * called from `measure`: the caller decides when a wholesale move is safe
243
+ * to make, which is while nothing is scrolling.
244
+ */
245
+ adapt(): boolean {
246
+ const n = this.measured.size;
247
+ if (n < 8) return false; // too few rows to say anything about the rest
248
+ const mean = Math.round(this.sum / n);
249
+ // ±1 is noise — the mean drifts by that much as single rows arrive, and
250
+ // a rebuild per drift would run at the measure rate for no visible gain.
251
+ if (Math.abs(mean - this.estimate) <= 1) return false;
252
+ this.estimate = Math.max(1, mean);
253
+ this.rebuild();
254
+ return true;
255
+ }
256
+
198
257
  /**
199
258
  * Forget every measurement, keeping the row list.
200
259
  *
@@ -206,6 +265,9 @@ export class RowHeights {
206
265
  */
207
266
  reset(): void {
208
267
  this.measured.clear();
268
+ this.sum = 0;
269
+ // adaptation came from the measurements just forgotten
270
+ this.estimate = this.base;
209
271
  this.dirty = true;
210
272
  }
211
273
  }
@@ -0,0 +1,344 @@
1
+ // Scrolling a row into view, when neither the row nor the scroll pane is
2
+ // ready to be asked yet.
3
+ //
4
+ // **Shared between `<Tree>` and `<Table>`** — the third piece both
5
+ // virtualizers stand on, beside `./heights.ts` and `./timers.ts`, and here
6
+ // for the same reason: the logic is subtle, it is identical in both, and a
7
+ // second copy of it is a second place for the bug below to come back.
8
+ //
9
+ // Two things a scroll pane does silently, both of them in the gap between a
10
+ // commit and the layout it causes, and both of them enough on their own to
11
+ // leave a virtualized list drawing rows the viewport is no longer looking at:
12
+ //
13
+ // 1. **`scrollTo` clamps against the content height the *last* layout
14
+ // measured.** A row appended in the commit now being laid out is past
15
+ // the bottom that clamp knows about, so the request lands short — and
16
+ // short *for good*, because nothing about it is retried. That is the
17
+ // live tail: a list that scrolls to its newest row on every update and
18
+ // settles one update behind, permanently. On mount, where no content
19
+ // has been laid out at all, the scroll simply never happens.
20
+ //
21
+ // 2. **The pane moves without saying so.** It resolves a queued
22
+ // `scrollIntoView` during layout, and it re-clamps an offset the
23
+ // content has outgrown or outshrunk — neither of which fires
24
+ // `onScroll`. A component that learns the offset only from that event
25
+ // keeps building its slice from where the pane *was*: the rows are
26
+ // drawn off-viewport, there is a blank band where they should be, and
27
+ // nothing puts it right until a scroll of your own re-syncs it by
28
+ // accident.
29
+ //
30
+ // So a reveal here is not a one-shot: it is a **debt**, kept by row id,
31
+ // attempted at once and re-tried on the layout that makes the rest of the
32
+ // move possible. It is dropped as soon as the row is in view, leaves the
33
+ // list, or the user scrolls somewhere themselves — an owed scroll must never
34
+ // yank the list back out from under a hand on the wheel.
35
+ //
36
+ // The offset is read back from the pane rather than trusted to the event;
37
+ // `useReveal` does not do that itself, because what a component *does* with
38
+ // the offset differs (a slice to rebuild, a header to shift), but it is the
39
+ // other half of the same fix and both components run it on the same tick.
40
+
41
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
42
+ import type { DrawnNode, ScrollableNode } from 'react-x11';
43
+
44
+ import type { RowHeights, RowKey } from './heights.js';
45
+ import { afterLayout, cancelAfterLayout } from './timers.js';
46
+ import type { LayoutTick } from './timers.js';
47
+
48
+ /** All a reveal needs of a row: `<TreeRow>` and `<TableRow>` are both this. */
49
+ interface Keyed {
50
+ id: RowKey;
51
+ }
52
+
53
+ /** A row on screen, and the index it was drawn at — the shape both
54
+ * components already keep their mounted rows in. */
55
+ interface Drawn {
56
+ node: DrawnNode;
57
+ at: number;
58
+ }
59
+
60
+ /** What the component lends the reveal: everything it already has, by ref,
61
+ * so nothing here goes stale between a render and the tick after layout. */
62
+ export interface RevealSources {
63
+ /** The scroll pane. `<Table>`'s body; `<Tree>`'s own root. */
64
+ box: { readonly current: ScrollableNode | null };
65
+ /** The rows in display order. */
66
+ rows: { readonly current: readonly Keyed[] };
67
+ /** The rows on screen, by id. */
68
+ nodes: { readonly current: ReadonlyMap<RowKey, Drawn> };
69
+ /** Where the rows that are *not* on screen are — and how tall a row that
70
+ * has never been drawn is assumed to be. */
71
+ heights: RowHeights;
72
+ }
73
+
74
+ export interface Reveal {
75
+ /** Owe a scroll to this row, and try to pay it now. */
76
+ to(id: RowKey): void;
77
+ /**
78
+ * The content above the viewport just changed size by `px` — measurements
79
+ * came in — and the offset must absorb the difference or what is on screen
80
+ * jumps. A debt rather than a one-shot for the same reason a reveal is:
81
+ * the pane clamps against the content height of the *last* layout, so a
82
+ * nudge made just after rows above grew taller lands short — near the
83
+ * bottom of the list, all of it lands short — and the remainder must be
84
+ * re-tried once the layout that admits the growth has run. Retried by
85
+ * `retry`, dropped by `heard`: a user mid-scroll keeps the pane.
86
+ */
87
+ nudge(px: number): void;
88
+ /**
89
+ * Try again: after a layout, or when the content changed size.
90
+ *
91
+ * Pass `provisional` on a pass where the height index just moved. The rows
92
+ * are still laid out at the heights it no longer believes, so a row that
93
+ * looks in view is not proof of anything yet — a row measured taller than
94
+ * the guess pushes everything after it down, and the row that was reached a
95
+ * moment ago ends up under the fold. The debt is kept until a pass that
96
+ * measured nothing new confirms it, which is exactly when the heights have
97
+ * converged.
98
+ */
99
+ retry(provisional?: boolean): void;
100
+ /** Scroll the pane, recording that this component is the one that asked. */
101
+ scrollTo(y: number): void;
102
+ /** An `onScroll` arrived. One this component did not ask for is the user
103
+ * taking over, and it cancels whatever was owed. */
104
+ heard(scrollY: number): void;
105
+ }
106
+
107
+ /**
108
+ * The scroll a component owes a row, and the bookkeeping that pays it.
109
+ *
110
+ * Stable across renders — every method reads through the refs it was handed,
111
+ * so an event handler or a layout tick built in an earlier render still sees
112
+ * the current rows.
113
+ */
114
+ export function useReveal(sources: RevealSources): Reveal {
115
+ const src = useRef(sources);
116
+ src.current = sources;
117
+ /** The row still owed a scroll, by id. */
118
+ const owed = useRef<RowKey | null>(null);
119
+ /**
120
+ * The row the last reveal settled on, kept for one reason: a measurement
121
+ * pass can move the heights that settlement was judged against. A row that
122
+ * was in view when the debt was paid is not in view any more once the rows
123
+ * around it turn out taller than the index believed, and the honest answer
124
+ * to "is that still true?" is to owe it again and look. Measurement
125
+ * converges, so this stops asking.
126
+ */
127
+ const settled = useRef<RowKey | null>(null);
128
+ /** The offset the last scroll *this component* asked for, so the
129
+ * `onScroll` that answers it is not read as the user taking over. */
130
+ const asked = useRef<number | null>(null);
131
+ /**
132
+ * What the pane looked like at the last attempt that could not move.
133
+ *
134
+ * An attempt clamped by a content height that is a layout out of date has
135
+ * to be looked at again — and nothing else will schedule that look: the
136
+ * scroll that did not happen renders nothing, so the component's own tick
137
+ * after layout never comes. One is queued here instead, and only while the
138
+ * pane keeps changing under it: an attempt that finds the same offset and
139
+ * the same content as the last one has nothing new to try, and stops.
140
+ */
141
+ const stuck = useRef<{ y: number; content: number } | null>(null);
142
+ const look = useRef<LayoutTick>(null);
143
+ useEffect(() => () => cancelAfterLayout(look.current), []);
144
+ /** Pixels the pane still owes the content that grew or shrank above the
145
+ * viewport — the unpaid remainder of `nudge`. */
146
+ const owedShift = useRef(0);
147
+
148
+ const scrollTo = useCallback((y: number): void => {
149
+ const box = src.current.box.current;
150
+ if (!box) return;
151
+ // Clamped here rather than left to the container, so what comes back on
152
+ // `onScroll` is the number that was asked for and can be recognised.
153
+ const to = Math.min(
154
+ Math.max(0, y),
155
+ Math.max(0, box.contentHeight - box.abs.height),
156
+ );
157
+ if (to === box.scrollY) return;
158
+ asked.current = to;
159
+ box.scrollTo({ y: to });
160
+ }, []);
161
+
162
+ /** Pay as much of the owed shift as the pane will take right now. What it
163
+ * refuses — a clamp still measuring the last layout's content — stays
164
+ * owed, and the `retry` after the next layout tries again. */
165
+ const payShift = useCallback((): void => {
166
+ const box = src.current.box.current;
167
+ const want = owedShift.current;
168
+ if (!box || want === 0) return;
169
+ const was = box.scrollY;
170
+ scrollTo(was + want);
171
+ owedShift.current = want - (box.scrollY - was);
172
+ }, [scrollTo]);
173
+
174
+ const nudge = useCallback(
175
+ (px: number): void => {
176
+ // Either the reveal owns the pane or the anchor does. While a row is
177
+ // owed — or settled and still being confirmed — the reveal re-places
178
+ // it against the heights as they settle, so preserving the anchor
179
+ // would fight it: a remainder paid out after the reveal has already
180
+ // put its row where it belongs scrolls straight past it.
181
+ if (owed.current !== null || settled.current !== null) return;
182
+ if (px === 0) return;
183
+ owedShift.current += px;
184
+ payShift();
185
+ },
186
+ [payShift],
187
+ );
188
+
189
+ const retry = useCallback(
190
+ (provisional?: boolean): void => {
191
+ const { box: boxRef, rows: rowsRef, nodes, heights } = src.current;
192
+ const box = boxRef.current;
193
+ // The shift first: the reveal below judges placement from the offset,
194
+ // and an offset still owing the content above it is the wrong one to
195
+ // judge anything from.
196
+ payShift();
197
+ // The heights just moved, so what the last reveal settled on was settled
198
+ // against numbers that have changed: owe it again until it can be
199
+ // confirmed at the new ones.
200
+ if (provisional && owed.current === null) owed.current = settled.current;
201
+ const id = owed.current;
202
+ if (!box || id === null) return;
203
+ const rows = rowsRef.current;
204
+ const at = rows.findIndex((r) => r.id === id);
205
+ if (at < 0) {
206
+ // the row left the list
207
+ owed.current = null;
208
+ settled.current = null;
209
+ return;
210
+ }
211
+ const viewport = box.abs.height;
212
+ if (viewport <= 0) return; // nothing laid out to scroll inside yet
213
+
214
+ // How far the row is outside the pane, in pixels of scrolling. The row's
215
+ // own rect answers when it is mounted — it knows what it really laid out
216
+ // at, and the arithmetic stays in screen coordinates, so a pane with
217
+ // padding on it needs no correction. The height index answers when the
218
+ // row is not mounted, which while virtualizing is the normal case.
219
+ const drawn = nodes.current.get(id);
220
+ const mounted =
221
+ drawn && drawn.node.abs.height > 0 && rows[drawn.at]?.id === id
222
+ ? drawn.node
223
+ : null;
224
+ const placed = mounted
225
+ ? {
226
+ above: box.abs.y - mounted.abs.y,
227
+ below: mounted.abs.y + mounted.abs.height - (box.abs.y + viewport),
228
+ height: mounted.abs.height,
229
+ }
230
+ : {
231
+ above: box.scrollY - heights.offsetAt(at),
232
+ below:
233
+ heights.offsetAt(at) +
234
+ heights.heightAt(at) -
235
+ (box.scrollY + viewport),
236
+ height: heights.heightAt(at),
237
+ };
238
+ /**
239
+ * Whether this is worth *settling* on, or only worth acting on.
240
+ *
241
+ * Two ways a row can look in view and not stay there. Its own placement
242
+ * may be a guess — the index's answer for a row nothing has measured —
243
+ * and "in view" judged from a guess is how a tail lands short of a bottom
244
+ * that has not been measured yet. Or a row *between* the viewport and it
245
+ * may still be a guess, and every one of those that turns out taller than
246
+ * the index believed pushes this row down by the difference, out of the
247
+ * view it had just been brought into.
248
+ *
249
+ * Both are settled by the same thing: measurement converges, so the rows
250
+ * that matter stop being guesses. A component that measures nothing at all
251
+ * has no guesses to wait on — `hasMeasurements` is how that is told
252
+ * apart, and it is what keeps a declared-uniform table from owing a debt
253
+ * for ever.
254
+ */
255
+ let certain = mounted !== null || heights.isMeasured(at);
256
+ if (certain && heights.hasMeasurements()) {
257
+ const from = Math.min(at, heights.indexAt(box.scrollY));
258
+ const to = Math.max(at, heights.indexAt(box.scrollY + viewport));
259
+ for (let i = from; i <= to && certain; i++) {
260
+ certain = heights.isMeasured(i);
261
+ }
262
+ }
263
+
264
+ let move = 0;
265
+ if (placed.height >= viewport) {
266
+ // A row taller than the pane is never *fully* in view, and asking for
267
+ // both its edges in turn is a debt that alternates for ever. Its top is
268
+ // the part worth showing — a wrapped row reads from its first line —
269
+ // and arriving there settles it.
270
+ move = -placed.above;
271
+ } else if (placed.above > 0) move = -placed.above;
272
+ else if (placed.below > 0) move = placed.below;
273
+
274
+ if (move === 0) {
275
+ // As far in view as it can be — settled, unless what that was judged
276
+ // against is still moving: a placement that came from a guess, or a
277
+ // pass that has just changed the heights under it.
278
+ if (certain && !provisional) {
279
+ settled.current = id;
280
+ owed.current = null;
281
+ }
282
+ return;
283
+ }
284
+ // A move the pane cannot make yet leaves the debt standing: the layout
285
+ // that admits the rows just appended is the one that will let it finish.
286
+ const was = box.scrollY;
287
+ scrollTo(was + move);
288
+ if (box.scrollY !== was) {
289
+ stuck.current = null; // it moved; the scroll it caused brings us back
290
+ return;
291
+ }
292
+ const seen = stuck.current;
293
+ const now = { y: box.scrollY, content: box.contentHeight };
294
+ stuck.current = now;
295
+ if (seen && seen.y === now.y && seen.content === now.content) return;
296
+ cancelAfterLayout(look.current);
297
+ look.current = afterLayout(() => {
298
+ look.current = null;
299
+ retryRef.current?.();
300
+ });
301
+ },
302
+ [scrollTo, payShift],
303
+ );
304
+
305
+ /** `retry` referring to itself through a ref, so the queued look calls the
306
+ * current one rather than closing over the render that queued it. */
307
+ const retryRef = useRef<(() => void) | null>(null);
308
+ retryRef.current = retry;
309
+
310
+ const to = useCallback(
311
+ (id: RowKey): void => {
312
+ // Recorded before the attempt rather than after it, because the
313
+ // interesting case is the one that cannot succeed yet.
314
+ owed.current = id;
315
+ settled.current = null;
316
+ stuck.current = null;
317
+ // the reveal owns the pane now — see `nudge`
318
+ owedShift.current = 0;
319
+ retry();
320
+ },
321
+ [retry],
322
+ );
323
+
324
+ const heard = useCallback((scrollY: number): void => {
325
+ // A scroll this component did not ask for ends the whole chase, not just
326
+ // the outstanding half of it.
327
+ if (scrollY !== asked.current) {
328
+ owed.current = null;
329
+ settled.current = null;
330
+ owedShift.current = 0;
331
+ }
332
+ asked.current = null;
333
+ }, []);
334
+
335
+ // One stable object, not a fresh literal per render: callbacks built on
336
+ // this handle (`revealAt`, and the row handlers behind it) keep their
337
+ // identity, which is what lets a memoized row bail out of a scroll
338
+ // render. A literal here made every row re-render on every notch — the
339
+ // exact cost the memo exists to remove — with nothing anywhere naming it.
340
+ return useMemo(
341
+ () => ({ to, retry, scrollTo, nudge, heard }),
342
+ [to, retry, scrollTo, nudge, heard],
343
+ );
344
+ }
@@ -42,3 +42,16 @@ export function cancelAfterLayout(tick: LayoutTick): void {
42
42
  if (tick.immediate) g.clearImmediate?.(tick.id);
43
43
  else g.clearTimeout?.(tick.id);
44
44
  }
45
+
46
+ export type DelayTick = { id: unknown } | null;
47
+
48
+ /** Run `fn` after `ms` — the idle clock prefetch paces itself on. Typed here
49
+ * for the same reason `afterLayout` is: `src/` compiles with `types: []`,
50
+ * and a bare `setTimeout` would demand `@types/node`. */
51
+ export function later(fn: () => void, ms: number): DelayTick {
52
+ return g.setTimeout ? { id: g.setTimeout(fn, ms) } : null;
53
+ }
54
+
55
+ export function cancelLater(tick: DelayTick): void {
56
+ if (tick) g.clearTimeout?.(tick.id);
57
+ }