@symbiote-native/react 3.0.3 → 3.0.4
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.
|
@@ -436,21 +436,13 @@ export function VirtualizedList(props) {
|
|
|
436
436
|
index: planCell.index,
|
|
437
437
|
separators: makeSeparators(planCell.index),
|
|
438
438
|
});
|
|
439
|
-
//
|
|
440
|
-
//
|
|
441
|
-
//
|
|
442
|
-
// gap + separator + gap while a spacer collapsing that region replaces it with one gap — the
|
|
443
|
-
// leading spacer then lands every cell below it short by (separator + gap), and the content
|
|
444
|
-
// visibly jumps by that amount each time the window's first index moves. Measured at exactly
|
|
445
|
-
// 17px on device 2026-08-19 (a 1px divider under a 16px container gap); see
|
|
446
|
-
// .claude/rules/list-geometry-feedback-loop.md. Inside the wrapper it is part of the cell's
|
|
447
|
-
// measured length instead, and every cell stays exactly one child.
|
|
439
|
+
// The separator lives INSIDE the cell's own measuring wrapper, not as a sibling: a sibling
|
|
440
|
+
// is an extra flex child, so a leading-spacer collapse would land every cell below it short
|
|
441
|
+
// by (separator + gap). See .claude/rules/list-geometry-feedback-loop.md.
|
|
448
442
|
const separator =
|
|
449
|
-
//
|
|
450
|
-
//
|
|
451
|
-
//
|
|
452
|
-
// would make a cell's own measured height change as the window slides past it. Device-measured
|
|
453
|
-
// 2026-08-19 as a run of cells all shifting by exactly the divider's 1px.
|
|
443
|
+
// Gated on the last index of the DATA, not the WINDOW: since the separator lives inside
|
|
444
|
+
// the measuring wrapper, gating on the window would make a cell's own measured height
|
|
445
|
+
// change as the window slides past it.
|
|
454
446
|
planCell.index < count - 1
|
|
455
447
|
? renderSeparatorElement(ItemSeparatorComponent, item, getItem(data, planCell.index + 1), separatorOverridesRef.current.get(planCell.index))
|
|
456
448
|
: undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@symbiote-native/react",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.4",
|
|
4
4
|
"description": "SymbioteNative's React adapter — a react-reconciler host config (mutation mode) driving real native iOS/Android views through stock React Native Fabric.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -57,20 +57,20 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"react-reconciler": "^0.33.0",
|
|
60
|
-
"@symbiote-native/components": "3.1.
|
|
61
|
-
"@symbiote-native/css-parser": "0.5.
|
|
60
|
+
"@symbiote-native/components": "3.1.2",
|
|
61
|
+
"@symbiote-native/css-parser": "0.5.2"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
64
|
"react": ">=19.0.0",
|
|
65
65
|
"react-native": ">=0.86",
|
|
66
|
-
"@symbiote-native/engine": "^1.3.
|
|
66
|
+
"@symbiote-native/engine": "^1.3.1"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
69
|
"@types/react": "^19.2.0",
|
|
70
70
|
"@types/react-reconciler": "^0.32.2",
|
|
71
71
|
"react": "19.2.3",
|
|
72
|
-
"@symbiote-native/engine": "1.3.
|
|
73
|
-
"@symbiote-native/test-utils": "0.4.
|
|
72
|
+
"@symbiote-native/engine": "1.3.1",
|
|
73
|
+
"@symbiote-native/test-utils": "0.4.4"
|
|
74
74
|
},
|
|
75
75
|
"scripts": {
|
|
76
76
|
"typecheck": "tsc --build",
|