@hanzogui/use-element-layout 3.0.5 → 4.3.1
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 +284 -154
- package/dist/cjs/index.native.js +353 -226
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/esm/index.js +269 -141
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +269 -141
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +338 -213
- package/dist/esm/index.native.js.map +1 -1
- package/package.json +4 -4
- package/src/index.tsx +4 -4
- package/types/index.d.ts.map +1 -1
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__HANZO_GUI_ONLAYOUT_PRETRANSFORM","process","env","HANZO_GUI_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","HANZO_GUI_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":[]}
|
|
1
|
+
{"version":3,"names":["useIsomorphicLayoutEffect","createContext","useContext","useId","jsx","LayoutHandlers","WeakMap","LayoutDisableKey","Nodes","Set","IntersectionState","usePretransformDimensions","globalThis","__GUI_ONLAYOUT_PRETRANSFORM","process","env","GUI_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","GUI_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":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,109 +1,151 @@
|
|
|
1
1
|
import { useIsomorphicLayoutEffect } from "@hanzogui/constants";
|
|
2
2
|
import { createContext, useContext, useId } from "react";
|
|
3
3
|
import { jsx } from "react/jsx-runtime";
|
|
4
|
-
const LayoutHandlers = /* @__PURE__ */new WeakMap()
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
const LayoutHandlers = /* @__PURE__ */new WeakMap();
|
|
5
|
+
const LayoutDisableKey = /* @__PURE__ */new WeakMap();
|
|
6
|
+
const Nodes = /* @__PURE__ */new Set();
|
|
7
|
+
const IntersectionState = /* @__PURE__ */new WeakMap();
|
|
8
|
+
const usePretransformDimensions = () => globalThis.__GUI_ONLAYOUT_PRETRANSFORM === true || process.env.GUI_ONLAYOUT_PRETRANSFORM === "1";
|
|
9
9
|
let _debugLayout;
|
|
10
10
|
function isDebugLayout() {
|
|
11
|
-
|
|
11
|
+
if (_debugLayout === void 0) {
|
|
12
|
+
_debugLayout = typeof window !== "undefined" && new URLSearchParams(window.location.search).has("__tamaDebugLayout");
|
|
13
|
+
}
|
|
14
|
+
return _debugLayout;
|
|
12
15
|
}
|
|
13
|
-
const DisableLayoutContextValues = {}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
const DisableLayoutContextValues = {};
|
|
17
|
+
const DisableLayoutContextKey = createContext("");
|
|
18
|
+
const ENABLE = typeof IntersectionObserver !== "undefined";
|
|
19
|
+
const LayoutMeasurementController = ({
|
|
20
|
+
disable,
|
|
21
|
+
children
|
|
22
|
+
}) => {
|
|
23
|
+
const id = useId();
|
|
24
|
+
useIsomorphicLayoutEffect(() => {
|
|
25
|
+
DisableLayoutContextValues[id] = disable;
|
|
26
|
+
}, [disable, id]);
|
|
27
|
+
return /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
|
|
28
|
+
value: id,
|
|
18
29
|
children
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}, [disable, id]), /* @__PURE__ */jsx(DisableLayoutContextKey.Provider, {
|
|
24
|
-
value: id,
|
|
25
|
-
children
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
let globalIntersectionObserver = null,
|
|
29
|
-
strategy = "async";
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
let globalIntersectionObserver = null;
|
|
33
|
+
let strategy = "async";
|
|
30
34
|
function setOnLayoutStrategy(state) {
|
|
31
35
|
strategy = state;
|
|
32
36
|
}
|
|
33
37
|
const NodeRectCache = /* @__PURE__ */new WeakMap();
|
|
34
|
-
let avoidUpdates =
|
|
38
|
+
let avoidUpdates = true;
|
|
35
39
|
const queuedUpdates = /* @__PURE__ */new Map();
|
|
36
40
|
function enable() {
|
|
37
|
-
|
|
41
|
+
if (avoidUpdates) {
|
|
42
|
+
avoidUpdates = false;
|
|
43
|
+
if (queuedUpdates) {
|
|
44
|
+
queuedUpdates.forEach(cb => cb());
|
|
45
|
+
queuedUpdates.clear();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
38
48
|
}
|
|
39
49
|
function startGlobalObservers() {
|
|
40
|
-
!ENABLE || globalIntersectionObserver
|
|
50
|
+
if (!ENABLE || globalIntersectionObserver) return;
|
|
51
|
+
globalIntersectionObserver = new IntersectionObserver(entries => {
|
|
41
52
|
for (let i = 0; i < entries.length; i++) {
|
|
42
|
-
const entry = entries[i]
|
|
43
|
-
|
|
44
|
-
IntersectionState.get(node) !== entry.isIntersecting
|
|
53
|
+
const entry = entries[i];
|
|
54
|
+
const node = entry.target;
|
|
55
|
+
if (IntersectionState.get(node) !== entry.isIntersecting) {
|
|
56
|
+
IntersectionState.set(node, entry.isIntersecting);
|
|
57
|
+
}
|
|
45
58
|
}
|
|
46
59
|
}, {
|
|
47
60
|
threshold: 0
|
|
48
|
-
})
|
|
61
|
+
});
|
|
49
62
|
}
|
|
50
63
|
function rectsEqual(a, b) {
|
|
51
64
|
return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
|
|
52
65
|
}
|
|
53
66
|
if (ENABLE) {
|
|
54
67
|
let ensureRectFetchObserver = function () {
|
|
55
|
-
|
|
68
|
+
if (rectFetchObserver) return rectFetchObserver;
|
|
69
|
+
rectFetchObserver = new IntersectionObserver(entries => {
|
|
56
70
|
lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
|
|
57
|
-
for (let i = 0; i < entries.length; i++)
|
|
58
|
-
|
|
71
|
+
for (let i = 0; i < entries.length; i++) {
|
|
72
|
+
BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
|
|
73
|
+
}
|
|
74
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50) {
|
|
75
|
+
console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries");
|
|
76
|
+
}
|
|
77
|
+
if (rectFetchResolve) {
|
|
78
|
+
rectFetchResolve(true);
|
|
79
|
+
rectFetchResolve = null;
|
|
80
|
+
}
|
|
59
81
|
}, {
|
|
60
82
|
threshold: 0
|
|
61
|
-
})
|
|
83
|
+
});
|
|
84
|
+
return rectFetchObserver;
|
|
62
85
|
};
|
|
63
86
|
const BoundingRects = /* @__PURE__ */new WeakMap();
|
|
64
|
-
let rectFetchObserver = null
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
87
|
+
let rectFetchObserver = null;
|
|
88
|
+
let rectFetchResolve = null;
|
|
89
|
+
let rectFetchStartTime = 0;
|
|
90
|
+
let lastCallbackDelay = 0;
|
|
68
91
|
async function updateLayoutIfChanged(node) {
|
|
69
92
|
const onLayout = LayoutHandlers.get(node);
|
|
70
|
-
if (typeof onLayout
|
|
93
|
+
if (typeof onLayout !== "function") return;
|
|
71
94
|
const parentNode = node.parentElement;
|
|
72
95
|
if (!parentNode) return;
|
|
73
|
-
let nodeRect
|
|
96
|
+
let nodeRect;
|
|
97
|
+
let parentRect;
|
|
74
98
|
if (strategy === "async") {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
99
|
+
nodeRect = BoundingRects.get(node);
|
|
100
|
+
parentRect = BoundingRects.get(parentNode);
|
|
101
|
+
if (!nodeRect || !parentRect) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
} else {
|
|
105
|
+
nodeRect = node.getBoundingClientRect();
|
|
106
|
+
parentRect = parentNode.getBoundingClientRect();
|
|
107
|
+
}
|
|
108
|
+
const cachedRect = NodeRectCache.get(node);
|
|
109
|
+
const cachedParentRect = NodeRectCache.get(parentNode);
|
|
110
|
+
const nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect);
|
|
111
|
+
const parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
|
|
81
112
|
if (nodeChanged || parentChanged) {
|
|
82
|
-
NodeRectCache.set(node, nodeRect)
|
|
113
|
+
NodeRectCache.set(node, nodeRect);
|
|
114
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
83
115
|
const event = getElementLayoutEvent(nodeRect, parentRect, node);
|
|
84
|
-
process.env.NODE_ENV === "development" && isDebugLayout()
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
116
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout()) {
|
|
117
|
+
console.log("[useElementLayout] change", {
|
|
118
|
+
tag: node.tagName,
|
|
119
|
+
id: node.id || void 0,
|
|
120
|
+
className: (node.className || "").slice(0, 60) || void 0,
|
|
121
|
+
layout: event.nativeEvent.layout,
|
|
122
|
+
first: !cachedRect
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
if (avoidUpdates) {
|
|
126
|
+
queuedUpdates.set(node, () => onLayout(event));
|
|
127
|
+
} else {
|
|
128
|
+
onLayout(event);
|
|
129
|
+
}
|
|
91
130
|
}
|
|
92
131
|
}
|
|
93
|
-
const rAF = typeof requestAnimationFrame
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
let skipFrames = BASE_SKIP_FRAMES
|
|
98
|
-
|
|
132
|
+
const rAF = typeof requestAnimationFrame !== "undefined" ? requestAnimationFrame : void 0;
|
|
133
|
+
const userSkipVal = process.env.GUI_LAYOUT_FRAME_SKIP;
|
|
134
|
+
const BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10;
|
|
135
|
+
const MAX_SKIP_FRAMES = 20;
|
|
136
|
+
let skipFrames = BASE_SKIP_FRAMES;
|
|
137
|
+
let frameCount = 0;
|
|
99
138
|
async function layoutOnAnimationFrame() {
|
|
100
139
|
if (frameCount++ % skipFrames !== 0) {
|
|
101
140
|
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
102
141
|
return;
|
|
103
142
|
}
|
|
104
|
-
if (frameCount >= Number.MAX_SAFE_INTEGER
|
|
105
|
-
|
|
106
|
-
|
|
143
|
+
if (frameCount >= Number.MAX_SAFE_INTEGER) {
|
|
144
|
+
frameCount = 0;
|
|
145
|
+
}
|
|
146
|
+
if (strategy !== "off") {
|
|
147
|
+
const visibleNodes = [];
|
|
148
|
+
const parentsToObserve = /* @__PURE__ */new Set();
|
|
107
149
|
for (const node of Nodes) {
|
|
108
150
|
const parentElement = node.parentElement;
|
|
109
151
|
if (!(parentElement instanceof HTMLElement)) {
|
|
@@ -111,135 +153,221 @@ if (ENABLE) {
|
|
|
111
153
|
continue;
|
|
112
154
|
}
|
|
113
155
|
const disableKey = LayoutDisableKey.get(node);
|
|
114
|
-
disableKey && DisableLayoutContextValues[disableKey] ===
|
|
156
|
+
if (disableKey && DisableLayoutContextValues[disableKey] === true) continue;
|
|
157
|
+
if (IntersectionState.get(node) === false) continue;
|
|
158
|
+
visibleNodes.push(node);
|
|
159
|
+
parentsToObserve.add(parentElement);
|
|
115
160
|
}
|
|
116
161
|
if (visibleNodes.length > 0) {
|
|
117
162
|
const io = ensureRectFetchObserver();
|
|
118
163
|
rectFetchStartTime = performance.now();
|
|
119
|
-
for (let i = 0; i < visibleNodes.length; i++)
|
|
120
|
-
|
|
164
|
+
for (let i = 0; i < visibleNodes.length; i++) {
|
|
165
|
+
io.observe(visibleNodes[i]);
|
|
166
|
+
}
|
|
167
|
+
for (const parent of parentsToObserve) {
|
|
168
|
+
io.observe(parent);
|
|
169
|
+
}
|
|
121
170
|
await new Promise(res => {
|
|
122
171
|
rectFetchResolve = res;
|
|
123
172
|
});
|
|
124
|
-
for (let i = 0; i < visibleNodes.length; i++)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
for (
|
|
173
|
+
for (let i = 0; i < visibleNodes.length; i++) {
|
|
174
|
+
io.unobserve(visibleNodes[i]);
|
|
175
|
+
}
|
|
176
|
+
for (const parent of parentsToObserve) {
|
|
177
|
+
io.unobserve(parent);
|
|
178
|
+
}
|
|
179
|
+
if (lastCallbackDelay > 50) {
|
|
180
|
+
skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES);
|
|
181
|
+
} else if (lastCallbackDelay < 20) {
|
|
182
|
+
skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES);
|
|
183
|
+
}
|
|
184
|
+
for (let i = 0; i < visibleNodes.length; i++) {
|
|
185
|
+
updateLayoutIfChanged(visibleNodes[i]);
|
|
186
|
+
}
|
|
128
187
|
}
|
|
129
188
|
}
|
|
130
189
|
rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
|
|
131
190
|
}
|
|
132
191
|
layoutOnAnimationFrame();
|
|
133
192
|
}
|
|
134
|
-
const getElementLayoutEvent = (nodeRect, parentRect, node) =>
|
|
193
|
+
const getElementLayoutEvent = (nodeRect, parentRect, node) => {
|
|
194
|
+
return {
|
|
135
195
|
nativeEvent: {
|
|
136
196
|
layout: getRelativeDimensions(nodeRect, parentRect, node),
|
|
137
197
|
target: nodeRect
|
|
138
198
|
},
|
|
139
199
|
timeStamp: Date.now()
|
|
140
|
-
}
|
|
141
|
-
|
|
200
|
+
};
|
|
201
|
+
};
|
|
202
|
+
const getPreTransformDimensions = node => {
|
|
203
|
+
return {
|
|
142
204
|
width: node.offsetWidth,
|
|
143
205
|
height: node.offsetHeight
|
|
144
|
-
}),
|
|
145
|
-
getRelativeDimensions = (a, b, aNode) => {
|
|
146
|
-
const {
|
|
147
|
-
left,
|
|
148
|
-
top
|
|
149
|
-
} = a,
|
|
150
|
-
x = left - b.left,
|
|
151
|
-
y = top - b.top,
|
|
152
|
-
{
|
|
153
|
-
width,
|
|
154
|
-
height
|
|
155
|
-
} = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
|
|
156
|
-
width: a.width,
|
|
157
|
-
height: a.height
|
|
158
|
-
};
|
|
159
|
-
return {
|
|
160
|
-
x,
|
|
161
|
-
y,
|
|
162
|
-
width,
|
|
163
|
-
height,
|
|
164
|
-
pageX: a.left,
|
|
165
|
-
pageY: a.top
|
|
166
|
-
};
|
|
167
206
|
};
|
|
207
|
+
};
|
|
208
|
+
const getRelativeDimensions = (a, b, aNode) => {
|
|
209
|
+
const {
|
|
210
|
+
left,
|
|
211
|
+
top
|
|
212
|
+
} = a;
|
|
213
|
+
const x = left - b.left;
|
|
214
|
+
const y = top - b.top;
|
|
215
|
+
const {
|
|
216
|
+
width,
|
|
217
|
+
height
|
|
218
|
+
} = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
|
|
219
|
+
width: a.width,
|
|
220
|
+
height: a.height
|
|
221
|
+
};
|
|
222
|
+
return {
|
|
223
|
+
x,
|
|
224
|
+
y,
|
|
225
|
+
width,
|
|
226
|
+
height,
|
|
227
|
+
pageX: a.left,
|
|
228
|
+
pageY: a.top
|
|
229
|
+
};
|
|
230
|
+
};
|
|
168
231
|
function registerLayoutNode(node, onChange, disableKey) {
|
|
169
|
-
|
|
232
|
+
Nodes.add(node);
|
|
233
|
+
LayoutHandlers.set(node, onChange);
|
|
234
|
+
if (disableKey) LayoutDisableKey.set(node, disableKey);
|
|
235
|
+
startGlobalObservers();
|
|
236
|
+
if (globalIntersectionObserver) {
|
|
237
|
+
globalIntersectionObserver.observe(node);
|
|
238
|
+
IntersectionState.set(node, true);
|
|
239
|
+
}
|
|
240
|
+
return () => cleanupNode(node);
|
|
170
241
|
}
|
|
171
242
|
function cleanupNode(node) {
|
|
172
|
-
Nodes.delete(node)
|
|
243
|
+
Nodes.delete(node);
|
|
244
|
+
LayoutHandlers.delete(node);
|
|
245
|
+
LayoutDisableKey.delete(node);
|
|
246
|
+
NodeRectCache.delete(node);
|
|
247
|
+
IntersectionState.delete(node);
|
|
248
|
+
if (globalIntersectionObserver) {
|
|
249
|
+
globalIntersectionObserver.unobserve(node);
|
|
250
|
+
}
|
|
173
251
|
}
|
|
174
252
|
const PrevHostNode = /* @__PURE__ */new WeakMap();
|
|
175
253
|
function useElementLayout(ref, onLayout) {
|
|
176
|
-
const disableKey = useContext(DisableLayoutContextKey)
|
|
177
|
-
|
|
178
|
-
node && onLayout
|
|
254
|
+
const disableKey = useContext(DisableLayoutContextKey);
|
|
255
|
+
const node = ensureWebElement(ref.current?.host);
|
|
256
|
+
if (node && onLayout) {
|
|
257
|
+
LayoutHandlers.set(node, onLayout);
|
|
258
|
+
LayoutDisableKey.set(node, disableKey);
|
|
259
|
+
}
|
|
260
|
+
useIsomorphicLayoutEffect(() => {
|
|
179
261
|
if (!onLayout) return;
|
|
180
|
-
const nextNode = ensureWebElement(ref.current?.host)
|
|
181
|
-
|
|
182
|
-
if (nextNode === prevNode
|
|
183
|
-
|
|
262
|
+
const nextNode = ensureWebElement(ref.current?.host);
|
|
263
|
+
const prevNode = PrevHostNode.get(ref);
|
|
264
|
+
if (nextNode === prevNode) return;
|
|
265
|
+
if (prevNode) cleanupNode(prevNode);
|
|
266
|
+
PrevHostNode.set(ref, nextNode);
|
|
267
|
+
if (!nextNode) return;
|
|
268
|
+
Nodes.add(nextNode);
|
|
269
|
+
startGlobalObservers();
|
|
270
|
+
if (globalIntersectionObserver) {
|
|
271
|
+
globalIntersectionObserver.observe(nextNode);
|
|
272
|
+
IntersectionState.set(nextNode, true);
|
|
273
|
+
}
|
|
184
274
|
const handler = LayoutHandlers.get(nextNode);
|
|
185
|
-
if (typeof handler
|
|
275
|
+
if (typeof handler !== "function") return;
|
|
186
276
|
const parentNode = nextNode.parentElement;
|
|
187
277
|
if (!parentNode) return;
|
|
188
|
-
const nodeRect = nextNode.getBoundingClientRect()
|
|
189
|
-
|
|
190
|
-
NodeRectCache.set(nextNode, nodeRect)
|
|
191
|
-
|
|
278
|
+
const nodeRect = nextNode.getBoundingClientRect();
|
|
279
|
+
const parentRect = parentNode.getBoundingClientRect();
|
|
280
|
+
NodeRectCache.set(nextNode, nodeRect);
|
|
281
|
+
NodeRectCache.set(parentNode, parentRect);
|
|
282
|
+
handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
|
|
283
|
+
});
|
|
284
|
+
useIsomorphicLayoutEffect(() => {
|
|
192
285
|
if (!onLayout) return;
|
|
193
286
|
const node2 = ref.current?.host;
|
|
194
287
|
if (!node2) return;
|
|
195
|
-
Nodes.add(node2)
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
}
|
|
288
|
+
Nodes.add(node2);
|
|
289
|
+
startGlobalObservers();
|
|
290
|
+
if (globalIntersectionObserver) {
|
|
291
|
+
globalIntersectionObserver.observe(node2);
|
|
292
|
+
IntersectionState.set(node2, true);
|
|
293
|
+
}
|
|
294
|
+
if (process.env.NODE_ENV === "development" && isDebugLayout()) {
|
|
295
|
+
console.log("[useElementLayout] register", {
|
|
296
|
+
tag: node2.tagName,
|
|
297
|
+
id: node2.id || void 0,
|
|
298
|
+
className: (node2.className || "").slice(0, 60) || void 0,
|
|
299
|
+
totalNodes: Nodes.size
|
|
300
|
+
});
|
|
301
|
+
}
|
|
201
302
|
const parentNode = node2.parentNode;
|
|
202
|
-
|
|
303
|
+
if (parentNode) {
|
|
304
|
+
onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2));
|
|
305
|
+
}
|
|
306
|
+
return () => {
|
|
203
307
|
cleanupNode(node2);
|
|
204
308
|
const swappedNode = PrevHostNode.get(ref);
|
|
205
|
-
swappedNode && swappedNode !== node2
|
|
309
|
+
if (swappedNode && swappedNode !== node2) {
|
|
310
|
+
cleanupNode(swappedNode);
|
|
311
|
+
}
|
|
312
|
+
PrevHostNode.delete(ref);
|
|
206
313
|
};
|
|
207
314
|
}, [ref, !!onLayout]);
|
|
208
315
|
}
|
|
209
316
|
function ensureWebElement(x) {
|
|
210
|
-
if (
|
|
317
|
+
if (typeof HTMLElement === "undefined") {
|
|
318
|
+
return void 0;
|
|
319
|
+
}
|
|
320
|
+
return x instanceof HTMLElement ? x : void 0;
|
|
211
321
|
}
|
|
212
|
-
const getBoundingClientRectAsync = node =>
|
|
213
|
-
|
|
214
|
-
|
|
322
|
+
const getBoundingClientRectAsync = node => {
|
|
323
|
+
return new Promise(res => {
|
|
324
|
+
if (!node || node.nodeType !== 1) return res(false);
|
|
325
|
+
const io = new IntersectionObserver(entries => {
|
|
326
|
+
io.disconnect();
|
|
327
|
+
return res(entries[0].boundingClientRect);
|
|
328
|
+
}, {
|
|
215
329
|
threshold: 0
|
|
216
330
|
});
|
|
217
331
|
io.observe(node);
|
|
218
|
-
})
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
332
|
+
});
|
|
333
|
+
};
|
|
334
|
+
const measureNode = async (node, relativeTo) => {
|
|
335
|
+
const relativeNode = relativeTo || node?.parentElement;
|
|
336
|
+
if (relativeNode instanceof HTMLElement) {
|
|
337
|
+
const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
|
|
338
|
+
if (relativeNodeDim && nodeDim) {
|
|
339
|
+
return getRelativeDimensions(nodeDim, relativeNodeDim, node);
|
|
224
340
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
341
|
+
}
|
|
342
|
+
return null;
|
|
343
|
+
};
|
|
344
|
+
const measure = async (node, callback) => {
|
|
345
|
+
const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
|
|
346
|
+
if (out) {
|
|
347
|
+
callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);
|
|
348
|
+
}
|
|
349
|
+
return out;
|
|
350
|
+
};
|
|
231
351
|
function createMeasure(node) {
|
|
232
352
|
return callback => measure(node, callback);
|
|
233
353
|
}
|
|
234
354
|
const measureInWindow = async (node, callback) => {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
355
|
+
const out = await measureNode(node, null);
|
|
356
|
+
if (out) {
|
|
357
|
+
callback?.(out.pageX, out.pageY, out.width, out.height);
|
|
358
|
+
}
|
|
359
|
+
return out;
|
|
360
|
+
};
|
|
361
|
+
const createMeasureInWindow = node => {
|
|
362
|
+
return callback => measureInWindow(node, callback);
|
|
363
|
+
};
|
|
364
|
+
const measureLayout = async (node, relativeNode, callback) => {
|
|
365
|
+
const out = await measureNode(node, relativeNode);
|
|
366
|
+
if (out) {
|
|
367
|
+
callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY);
|
|
368
|
+
}
|
|
369
|
+
return out;
|
|
370
|
+
};
|
|
243
371
|
function createMeasureLayout(node) {
|
|
244
372
|
return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
|
|
245
373
|
}
|