@tamagui/use-element-layout 2.0.0-rc.3 → 2.0.0-rc.31
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.
- package/dist/cjs/index.cjs +123 -53
- package/dist/cjs/index.native.js +181 -86
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +198 -136
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +123 -54
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +181 -87
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +7 -10
- package/src/index.tsx +280 -89
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +4 -4
- package/dist/cjs/index.js +0 -198
- package/dist/cjs/index.js.map +0 -6
package/dist/esm/index.mjs
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@tamagui/constants";
|
|
2
|
-
import { isEqualShallow } from "@tamagui/is-equal-shallow";
|
|
3
2
|
import { createContext, useContext, useId } from "react";
|
|
4
3
|
import { jsx } from "react/jsx-runtime";
|
|
5
4
|
const LayoutHandlers = /* @__PURE__ */new WeakMap(),
|
|
6
5
|
LayoutDisableKey = /* @__PURE__ */new WeakMap(),
|
|
7
6
|
Nodes = /* @__PURE__ */new Set(),
|
|
8
7
|
IntersectionState = /* @__PURE__ */new WeakMap(),
|
|
9
|
-
|
|
8
|
+
usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
|
|
9
|
+
let _debugLayout;
|
|
10
|
+
function isDebugLayout() {
|
|
11
|
+
return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
|
|
12
|
+
}
|
|
13
|
+
const DisableLayoutContextValues = {},
|
|
10
14
|
DisableLayoutContextKey = createContext(""),
|
|
11
15
|
ENABLE = typeof IntersectionObserver < "u",
|
|
12
16
|
LayoutMeasurementController = ({
|
|
@@ -26,8 +30,7 @@ let globalIntersectionObserver = null,
|
|
|
26
30
|
function setOnLayoutStrategy(state) {
|
|
27
31
|
strategy = state;
|
|
28
32
|
}
|
|
29
|
-
const NodeRectCache = /* @__PURE__ */new WeakMap()
|
|
30
|
-
LastChangeTime = /* @__PURE__ */new WeakMap();
|
|
33
|
+
const NodeRectCache = /* @__PURE__ */new WeakMap();
|
|
31
34
|
let avoidUpdates = !0;
|
|
32
35
|
const queuedUpdates = /* @__PURE__ */new Map();
|
|
33
36
|
function enable() {
|
|
@@ -35,16 +38,33 @@ function enable() {
|
|
|
35
38
|
}
|
|
36
39
|
function startGlobalObservers() {
|
|
37
40
|
!ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(entries => {
|
|
38
|
-
entries.
|
|
39
|
-
const
|
|
41
|
+
for (let i = 0; i < entries.length; i++) {
|
|
42
|
+
const entry = entries[i],
|
|
43
|
+
node = entry.target;
|
|
40
44
|
IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
|
|
41
|
-
}
|
|
45
|
+
}
|
|
42
46
|
}, {
|
|
43
47
|
threshold: 0
|
|
44
48
|
}));
|
|
45
49
|
}
|
|
50
|
+
function rectsEqual(a, b) {
|
|
51
|
+
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
52
|
+
}
|
|
46
53
|
if (ENABLE) {
|
|
54
|
+
let ensureRectFetchObserver = function () {
|
|
55
|
+
return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(entries => {
|
|
56
|
+
lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
|
|
57
|
+
for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
|
|
58
|
+
process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
|
|
59
|
+
}, {
|
|
60
|
+
threshold: 0
|
|
61
|
+
}), rectFetchObserver);
|
|
62
|
+
};
|
|
47
63
|
const BoundingRects = /* @__PURE__ */new WeakMap();
|
|
64
|
+
let rectFetchObserver = null,
|
|
65
|
+
rectFetchResolve = null,
|
|
66
|
+
rectFetchStartTime = 0,
|
|
67
|
+
lastCallbackDelay = 0;
|
|
48
68
|
async function updateLayoutIfChanged(node) {
|
|
49
69
|
const onLayout = LayoutHandlers.get(node);
|
|
50
70
|
if (typeof onLayout != "function") return;
|
|
@@ -52,68 +72,90 @@ if (ENABLE) {
|
|
|
52
72
|
if (!parentNode) return;
|
|
53
73
|
let nodeRect, parentRect;
|
|
54
74
|
if (strategy === "async") {
|
|
55
|
-
|
|
56
|
-
if (!nr || !pr) return;
|
|
57
|
-
nodeRect = nr, parentRect = pr;
|
|
75
|
+
if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
|
|
58
76
|
} else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
|
|
59
|
-
if (!nodeRect || !parentRect) return;
|
|
60
77
|
const cachedRect = NodeRectCache.get(node),
|
|
61
|
-
cachedParentRect = NodeRectCache.get(parentNode)
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
!isEqualShallow(cachedRect, nodeRect) ||
|
|
66
|
-
// @ts-expect-error DOMRectReadOnly can go into object
|
|
67
|
-
!isEqualShallow(cachedParentRect, parentRect)) {
|
|
78
|
+
cachedParentRect = NodeRectCache.get(parentNode),
|
|
79
|
+
nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
|
|
80
|
+
parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
81
|
+
if (nodeChanged || parentChanged) {
|
|
68
82
|
NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
|
|
69
|
-
const event = getElementLayoutEvent(nodeRect, parentRect);
|
|
70
|
-
|
|
83
|
+
const event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
84
|
+
process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
|
|
85
|
+
tag: node.tagName,
|
|
86
|
+
id: node.id || void 0,
|
|
87
|
+
className: (node.className || "").slice(0, 60) || void 0,
|
|
88
|
+
layout: event.nativeEvent.layout,
|
|
89
|
+
first: !cachedRect
|
|
90
|
+
}), avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
|
|
71
91
|
}
|
|
72
92
|
}
|
|
73
|
-
const
|
|
74
|
-
|
|
93
|
+
const rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
|
|
94
|
+
userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP,
|
|
95
|
+
BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
|
|
96
|
+
MAX_SKIP_FRAMES = 20;
|
|
97
|
+
let skipFrames = BASE_SKIP_FRAMES,
|
|
98
|
+
frameCount = 0;
|
|
75
99
|
async function layoutOnAnimationFrame() {
|
|
76
|
-
if (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
if (!(node.parentElement instanceof HTMLElement)) continue;
|
|
89
|
-
const disableKey = LayoutDisableKey.get(node);
|
|
90
|
-
disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (didObserve = !0, io.observe(node), io.observe(node.parentElement), visibleNodes.push(node));
|
|
100
|
+
if (frameCount++ % skipFrames !== 0) {
|
|
101
|
+
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
|
|
105
|
+
const visibleNodes = [],
|
|
106
|
+
parentsToObserve = /* @__PURE__ */new Set();
|
|
107
|
+
for (const node of Nodes) {
|
|
108
|
+
const parentElement = node.parentElement;
|
|
109
|
+
if (!(parentElement instanceof HTMLElement)) {
|
|
110
|
+
cleanupNode(node);
|
|
111
|
+
continue;
|
|
91
112
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
113
|
+
const disableKey = LayoutDisableKey.get(node);
|
|
114
|
+
disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
|
|
115
|
+
}
|
|
116
|
+
if (visibleNodes.length > 0) {
|
|
117
|
+
const io = ensureRectFetchObserver();
|
|
118
|
+
rectFetchStartTime = performance.now();
|
|
119
|
+
for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
|
|
120
|
+
for (const parent of parentsToObserve) io.observe(parent);
|
|
121
|
+
await new Promise(res => {
|
|
122
|
+
rectFetchResolve = res;
|
|
123
|
+
});
|
|
124
|
+
for (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);
|
|
125
|
+
for (const parent of parentsToObserve) io.unobserve(parent);
|
|
126
|
+
lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
|
|
127
|
+
for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
|
|
128
|
+
}
|
|
96
129
|
}
|
|
97
|
-
setTimeout(layoutOnAnimationFrame, 16
|
|
130
|
+
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
98
131
|
}
|
|
99
132
|
layoutOnAnimationFrame();
|
|
100
133
|
}
|
|
101
|
-
const getElementLayoutEvent = (nodeRect, parentRect) => ({
|
|
134
|
+
const getElementLayoutEvent = (nodeRect, parentRect, node) => ({
|
|
102
135
|
nativeEvent: {
|
|
103
|
-
layout: getRelativeDimensions(nodeRect, parentRect),
|
|
136
|
+
layout: getRelativeDimensions(nodeRect, parentRect, node),
|
|
104
137
|
target: nodeRect
|
|
105
138
|
},
|
|
106
139
|
timeStamp: Date.now()
|
|
107
140
|
}),
|
|
108
|
-
|
|
141
|
+
getPreTransformDimensions = node => ({
|
|
142
|
+
width: node.offsetWidth,
|
|
143
|
+
height: node.offsetHeight
|
|
144
|
+
}),
|
|
145
|
+
getRelativeDimensions = (a, b, aNode) => {
|
|
109
146
|
const {
|
|
110
|
-
height,
|
|
111
147
|
left,
|
|
112
|
-
top
|
|
113
|
-
width
|
|
148
|
+
top
|
|
114
149
|
} = a,
|
|
115
150
|
x = left - b.left,
|
|
116
|
-
y = top - b.top
|
|
151
|
+
y = top - b.top,
|
|
152
|
+
{
|
|
153
|
+
width,
|
|
154
|
+
height
|
|
155
|
+
} = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
|
|
156
|
+
width: a.width,
|
|
157
|
+
height: a.height
|
|
158
|
+
};
|
|
117
159
|
return {
|
|
118
160
|
x,
|
|
119
161
|
y,
|
|
@@ -123,17 +165,44 @@ const getElementLayoutEvent = (nodeRect, parentRect) => ({
|
|
|
123
165
|
pageY: a.top
|
|
124
166
|
};
|
|
125
167
|
};
|
|
168
|
+
function registerLayoutNode(node, onChange, disableKey) {
|
|
169
|
+
return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), () => cleanupNode(node);
|
|
170
|
+
}
|
|
171
|
+
function cleanupNode(node) {
|
|
172
|
+
Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
|
|
173
|
+
}
|
|
174
|
+
const PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
126
175
|
function useElementLayout(ref, onLayout) {
|
|
127
176
|
const disableKey = useContext(DisableLayoutContextKey),
|
|
128
177
|
node = ensureWebElement(ref.current?.host);
|
|
129
178
|
node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), useIsomorphicLayoutEffect(() => {
|
|
179
|
+
if (!onLayout) return;
|
|
180
|
+
const nextNode = ensureWebElement(ref.current?.host),
|
|
181
|
+
prevNode = PrevHostNode.get(ref);
|
|
182
|
+
if (nextNode === prevNode || (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !nextNode)) return;
|
|
183
|
+
Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
|
|
184
|
+
const handler = LayoutHandlers.get(nextNode);
|
|
185
|
+
if (typeof handler != "function") return;
|
|
186
|
+
const parentNode = nextNode.parentElement;
|
|
187
|
+
if (!parentNode) return;
|
|
188
|
+
const nodeRect = nextNode.getBoundingClientRect(),
|
|
189
|
+
parentRect = parentNode.getBoundingClientRect();
|
|
190
|
+
NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
|
|
191
|
+
}), useIsomorphicLayoutEffect(() => {
|
|
130
192
|
if (!onLayout) return;
|
|
131
193
|
const node2 = ref.current?.host;
|
|
132
194
|
if (!node2) return;
|
|
133
|
-
Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0))
|
|
195
|
+
Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
|
|
196
|
+
tag: node2.tagName,
|
|
197
|
+
id: node2.id || void 0,
|
|
198
|
+
className: (node2.className || "").slice(0, 60) || void 0,
|
|
199
|
+
totalNodes: Nodes.size
|
|
200
|
+
});
|
|
134
201
|
const parentNode = node2.parentNode;
|
|
135
|
-
return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect())), () => {
|
|
136
|
-
|
|
202
|
+
return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), () => {
|
|
203
|
+
cleanupNode(node2);
|
|
204
|
+
const swappedNode = PrevHostNode.get(ref);
|
|
205
|
+
swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
|
|
137
206
|
};
|
|
138
207
|
}, [ref, !!onLayout]);
|
|
139
208
|
}
|
|
@@ -151,7 +220,7 @@ const getBoundingClientRectAsync = node => new Promise(res => {
|
|
|
151
220
|
const relativeNode = relativeTo || node?.parentElement;
|
|
152
221
|
if (relativeNode instanceof HTMLElement) {
|
|
153
222
|
const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
|
|
154
|
-
if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim);
|
|
223
|
+
if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
|
|
155
224
|
}
|
|
156
225
|
return null;
|
|
157
226
|
},
|
|
@@ -174,5 +243,5 @@ const measureInWindow = async (node, callback) => {
|
|
|
174
243
|
function createMeasureLayout(node) {
|
|
175
244
|
return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
|
|
176
245
|
}
|
|
177
|
-
export { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, setOnLayoutStrategy, useElementLayout };
|
|
246
|
+
export { LayoutMeasurementController, createMeasure, createMeasureInWindow, createMeasureLayout, enable, getBoundingClientRectAsync, getElementLayoutEvent, measure, measureInWindow, measureLayout, measureNode, registerLayoutNode, setOnLayoutStrategy, useElementLayout };
|
|
178
247
|
//# sourceMappingURL=index.mjs.map
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","isEqualShallow","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","setOnLayoutStrategy","state","NodeRectCache","LastChangeTime","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","entries","entry","node","target","get","isIntersecting","set","threshold","BoundingRects","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","nr","pr","Promise","all","getBoundingClientRect","cachedRect","cachedParentRect","event","getElementLayoutEvent","userSkipVal","process","env","TAMAGUI_LAYOUT_FRAME_SKIP","RUN_EVERY_X_FRAMES","layoutOnAnimationFrame","visibleNodes","res","io","disconnect","boundingClientRect","didObserve","HTMLElement","disableKey","observe","push","setTimeout","nativeEvent","layout","getRelativeDimensions","timeStamp","Date","now","a","b","height","left","top","width","x","y","pageX","pageY","useElementLayout","ref","ensureWebElement","current","host","node2","add","delete","unobserve","getBoundingClientRectAsync","nodeType","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__TAMAGUI_ONLAYOUT_PRETRANSFORM","process","env","TAMAGUI_ONLAYOUT_PRETRANSFORM","_debugLayout","isDebugLayout","window","URLSearchParams","location","search","has","DisableLayoutContextValues","DisableLayoutContextKey","ENABLE","IntersectionObserver","LayoutMeasurementController","disable","children","id","Provider","value","globalIntersectionObserver","strategy","setOnLayoutStrategy","state","NodeRectCache","avoidUpdates","queuedUpdates","Map","enable","forEach","cb","clear","startGlobalObservers","entries","i","length","entry","node","target","get","isIntersecting","set","threshold","rectsEqual","a","b","x","y","width","height","ensureRectFetchObserver","rectFetchObserver","lastCallbackDelay","Math","round","performance","now","rectFetchStartTime","BoundingRects","boundingClientRect","NODE_ENV","console","warn","rectFetchResolve","updateLayoutIfChanged","onLayout","parentNode","parentElement","nodeRect","parentRect","getBoundingClientRect","cachedRect","cachedParentRect","nodeChanged","parentChanged","event","getElementLayoutEvent","log","tag","tagName","className","slice","layout","nativeEvent","first","rAF","requestAnimationFrame","userSkipVal","TAMAGUI_LAYOUT_FRAME_SKIP","BASE_SKIP_FRAMES","MAX_SKIP_FRAMES","skipFrames","frameCount","layoutOnAnimationFrame","setTimeout","Number","MAX_SAFE_INTEGER","visibleNodes","parentsToObserve","HTMLElement","cleanupNode","disableKey","push","add","io","observe","parent","Promise","res","unobserve","min","max","getRelativeDimensions","timeStamp","Date","getPreTransformDimensions","offsetWidth","offsetHeight","aNode","left","top","pageX","pageY","registerLayoutNode","onChange","delete","PrevHostNode","useElementLayout","ref","ensureWebElement","current","host","nextNode","prevNode","handler","node2","totalNodes","size","swappedNode","getBoundingClientRectAsync","nodeType","disconnect","measureNode","relativeTo","relativeNode","nodeDim","relativeNodeDim","all","measure","callback","out","createMeasure","measureInWindow","createMeasureInWindow","measureLayout","createMeasureLayout"],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|