@tamagui/use-element-layout 2.0.0-rc.3 → 2.0.0-rc.30

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.js CHANGED
@@ -3,15 +3,21 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all)
7
- __defProp(target, name, { get: all[name], enumerable: !0 });
8
- }, __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from == "object" || typeof from == "function")
10
- for (let key of __getOwnPropNames(from))
11
- !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
12
- return to;
13
- };
14
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
15
21
  var index_exports = {};
16
22
  __export(index_exports, {
17
23
  LayoutMeasurementController: () => LayoutMeasurementController,
@@ -25,45 +31,78 @@ __export(index_exports, {
25
31
  measureInWindow: () => measureInWindow,
26
32
  measureLayout: () => measureLayout,
27
33
  measureNode: () => measureNode,
34
+ registerLayoutNode: () => registerLayoutNode,
28
35
  setOnLayoutStrategy: () => setOnLayoutStrategy,
29
36
  useElementLayout: () => useElementLayout
30
37
  });
31
38
  module.exports = __toCommonJS(index_exports);
32
- var import_constants = require("@tamagui/constants"), import_is_equal_shallow = require("@tamagui/is-equal-shallow"), import_react = require("react"), import_jsx_runtime = require("react/jsx-runtime");
33
- const LayoutHandlers = /* @__PURE__ */ new WeakMap(), LayoutDisableKey = /* @__PURE__ */ new WeakMap(), Nodes = /* @__PURE__ */ new Set(), IntersectionState = /* @__PURE__ */ new WeakMap(), DisableLayoutContextValues = {}, DisableLayoutContextKey = (0, import_react.createContext)(""), ENABLE = typeof IntersectionObserver < "u", LayoutMeasurementController = ({
34
- disable,
35
- children
36
- }) => {
37
- const id = (0, import_react.useId)();
38
- return (0, import_constants.useIsomorphicLayoutEffect)(() => {
39
- DisableLayoutContextValues[id] = disable;
40
- }, [disable, id]), /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, { value: id, children });
41
- };
42
- let globalIntersectionObserver = null, strategy = "async";
39
+ var import_constants = require("@tamagui/constants"),
40
+ import_react = require("react"),
41
+ import_jsx_runtime = require("react/jsx-runtime");
42
+ const LayoutHandlers = /* @__PURE__ */new WeakMap(),
43
+ LayoutDisableKey = /* @__PURE__ */new WeakMap(),
44
+ Nodes = /* @__PURE__ */new Set(),
45
+ IntersectionState = /* @__PURE__ */new WeakMap(),
46
+ usePretransformDimensions = () => globalThis.__TAMAGUI_ONLAYOUT_PRETRANSFORM === !0 || process.env.TAMAGUI_ONLAYOUT_PRETRANSFORM === "1";
47
+ let _debugLayout;
48
+ function isDebugLayout() {
49
+ return _debugLayout === void 0 && (_debugLayout = typeof window < "u" && new URLSearchParams(window.location.search).has("__tamaDebugLayout")), _debugLayout;
50
+ }
51
+ const DisableLayoutContextValues = {},
52
+ DisableLayoutContextKey = (0, import_react.createContext)(""),
53
+ ENABLE = typeof IntersectionObserver < "u",
54
+ LayoutMeasurementController = ({
55
+ disable,
56
+ children
57
+ }) => {
58
+ const id = (0, import_react.useId)();
59
+ return (0, import_constants.useIsomorphicLayoutEffect)(() => {
60
+ DisableLayoutContextValues[id] = disable;
61
+ }, [disable, id]), /* @__PURE__ */(0, import_jsx_runtime.jsx)(DisableLayoutContextKey.Provider, {
62
+ value: id,
63
+ children
64
+ });
65
+ };
66
+ let globalIntersectionObserver = null,
67
+ strategy = "async";
43
68
  function setOnLayoutStrategy(state) {
44
69
  strategy = state;
45
70
  }
46
- const NodeRectCache = /* @__PURE__ */ new WeakMap(), LastChangeTime = /* @__PURE__ */ new WeakMap();
71
+ const NodeRectCache = /* @__PURE__ */new WeakMap();
47
72
  let avoidUpdates = !0;
48
- const queuedUpdates = /* @__PURE__ */ new Map();
73
+ const queuedUpdates = /* @__PURE__ */new Map();
49
74
  function enable() {
50
- avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach((cb) => cb()), queuedUpdates.clear()));
75
+ avoidUpdates && (avoidUpdates = !1, queuedUpdates && (queuedUpdates.forEach(cb => cb()), queuedUpdates.clear()));
51
76
  }
52
77
  function startGlobalObservers() {
53
- !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(
54
- (entries) => {
55
- entries.forEach((entry) => {
56
- const node = entry.target;
57
- IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
58
- });
59
- },
60
- {
61
- threshold: 0
78
+ !ENABLE || globalIntersectionObserver || (globalIntersectionObserver = new IntersectionObserver(entries => {
79
+ for (let i = 0; i < entries.length; i++) {
80
+ const entry = entries[i],
81
+ node = entry.target;
82
+ IntersectionState.get(node) !== entry.isIntersecting && IntersectionState.set(node, entry.isIntersecting);
62
83
  }
63
- ));
84
+ }, {
85
+ threshold: 0
86
+ }));
87
+ }
88
+ function rectsEqual(a, b) {
89
+ return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;
64
90
  }
65
91
  if (ENABLE) {
66
- const BoundingRects = /* @__PURE__ */ new WeakMap();
92
+ let ensureRectFetchObserver = function () {
93
+ return rectFetchObserver || (rectFetchObserver = new IntersectionObserver(entries => {
94
+ lastCallbackDelay = Math.round(performance.now() - rectFetchStartTime);
95
+ for (let i = 0; i < entries.length; i++) BoundingRects.set(entries[i].target, entries[i].boundingClientRect);
96
+ process.env.NODE_ENV === "development" && isDebugLayout() && lastCallbackDelay > 50 && console.warn("[onLayout-io-delay]", lastCallbackDelay + "ms", entries.length, "entries"), rectFetchResolve && (rectFetchResolve(!0), rectFetchResolve = null);
97
+ }, {
98
+ threshold: 0
99
+ }), rectFetchObserver);
100
+ };
101
+ const BoundingRects = /* @__PURE__ */new WeakMap();
102
+ let rectFetchObserver = null,
103
+ rectFetchResolve = null,
104
+ rectFetchStartTime = 0,
105
+ lastCallbackDelay = 0;
67
106
  async function updateLayoutIfChanged(node) {
68
107
  const onLayout = LayoutHandlers.get(node);
69
108
  if (typeof onLayout != "function") return;
@@ -71,128 +110,174 @@ if (ENABLE) {
71
110
  if (!parentNode) return;
72
111
  let nodeRect, parentRect;
73
112
  if (strategy === "async") {
74
- const [nr, pr] = await Promise.all([
75
- BoundingRects.get(node),
76
- BoundingRects.get(parentNode)
77
- ]);
78
- if (!nr || !pr)
79
- return;
80
- nodeRect = nr, parentRect = pr;
81
- } else
82
- nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
83
- if (!nodeRect || !parentRect)
84
- return;
85
- const cachedRect = NodeRectCache.get(node), cachedParentRect = NodeRectCache.get(parentNode);
86
- if (!cachedRect || !cachedParentRect || // has changed one rect
87
- // @ts-expect-error DOMRectReadOnly can go into object
88
- !(0, import_is_equal_shallow.isEqualShallow)(cachedRect, nodeRect) || // @ts-expect-error DOMRectReadOnly can go into object
89
- !(0, import_is_equal_shallow.isEqualShallow)(cachedParentRect, parentRect)) {
113
+ if (nodeRect = BoundingRects.get(node), parentRect = BoundingRects.get(parentNode), !nodeRect || !parentRect) return;
114
+ } else nodeRect = node.getBoundingClientRect(), parentRect = parentNode.getBoundingClientRect();
115
+ const cachedRect = NodeRectCache.get(node),
116
+ cachedParentRect = NodeRectCache.get(parentNode),
117
+ nodeChanged = !cachedRect || !rectsEqual(cachedRect, nodeRect),
118
+ parentChanged = !cachedParentRect || !rectsEqual(cachedParentRect, parentRect);
119
+ if (nodeChanged || parentChanged) {
90
120
  NodeRectCache.set(node, nodeRect), NodeRectCache.set(parentNode, parentRect);
91
- const event = getElementLayoutEvent(nodeRect, parentRect);
92
- avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
121
+ const event = getElementLayoutEvent(nodeRect, parentRect, node);
122
+ process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] change", {
123
+ tag: node.tagName,
124
+ id: node.id || void 0,
125
+ className: (node.className || "").slice(0, 60) || void 0,
126
+ layout: event.nativeEvent.layout,
127
+ first: !cachedRect
128
+ }), avoidUpdates ? queuedUpdates.set(node, () => onLayout(event)) : onLayout(event);
93
129
  }
94
130
  }
95
- const userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP, RUN_EVERY_X_FRAMES = userSkipVal ? +userSkipVal : 14;
131
+ const rAF = typeof requestAnimationFrame < "u" ? requestAnimationFrame : void 0,
132
+ userSkipVal = process.env.TAMAGUI_LAYOUT_FRAME_SKIP,
133
+ BASE_SKIP_FRAMES = userSkipVal ? +userSkipVal : 10,
134
+ MAX_SKIP_FRAMES = 20;
135
+ let skipFrames = BASE_SKIP_FRAMES,
136
+ frameCount = 0;
96
137
  async function layoutOnAnimationFrame() {
97
- if (strategy !== "off") {
98
- const visibleNodes = [];
99
- await new Promise((res) => {
100
- const io = new IntersectionObserver(
101
- (entries) => {
102
- io.disconnect();
103
- for (const entry of entries)
104
- BoundingRects.set(entry.target, entry.boundingClientRect);
105
- res(!0);
106
- },
107
- {
108
- threshold: 0
109
- }
110
- );
111
- let didObserve = !1;
112
- for (const node of Nodes) {
113
- if (!(node.parentElement instanceof HTMLElement)) continue;
114
- const disableKey = LayoutDisableKey.get(node);
115
- disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (didObserve = !0, io.observe(node), io.observe(node.parentElement), visibleNodes.push(node));
138
+ if (frameCount++ % skipFrames !== 0) {
139
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
140
+ return;
141
+ }
142
+ if (frameCount >= Number.MAX_SAFE_INTEGER && (frameCount = 0), strategy !== "off") {
143
+ const visibleNodes = [],
144
+ parentsToObserve = /* @__PURE__ */new Set();
145
+ for (const node of Nodes) {
146
+ const parentElement = node.parentElement;
147
+ if (!(parentElement instanceof HTMLElement)) {
148
+ cleanupNode(node);
149
+ continue;
116
150
  }
117
- didObserve || res(!1);
118
- }) && visibleNodes.forEach((node) => {
119
- updateLayoutIfChanged(node);
120
- });
151
+ const disableKey = LayoutDisableKey.get(node);
152
+ disableKey && DisableLayoutContextValues[disableKey] === !0 || IntersectionState.get(node) !== !1 && (visibleNodes.push(node), parentsToObserve.add(parentElement));
153
+ }
154
+ if (visibleNodes.length > 0) {
155
+ const io = ensureRectFetchObserver();
156
+ rectFetchStartTime = performance.now();
157
+ for (let i = 0; i < visibleNodes.length; i++) io.observe(visibleNodes[i]);
158
+ for (const parent of parentsToObserve) io.observe(parent);
159
+ await new Promise(res => {
160
+ rectFetchResolve = res;
161
+ });
162
+ for (let i = 0; i < visibleNodes.length; i++) io.unobserve(visibleNodes[i]);
163
+ for (const parent of parentsToObserve) io.unobserve(parent);
164
+ lastCallbackDelay > 50 ? skipFrames = Math.min(skipFrames + 2, MAX_SKIP_FRAMES) : lastCallbackDelay < 20 && (skipFrames = Math.max(skipFrames - 1, BASE_SKIP_FRAMES));
165
+ for (let i = 0; i < visibleNodes.length; i++) updateLayoutIfChanged(visibleNodes[i]);
166
+ }
121
167
  }
122
- setTimeout(layoutOnAnimationFrame, 16.6667 * RUN_EVERY_X_FRAMES);
168
+ rAF ? rAF(layoutOnAnimationFrame) : setTimeout(layoutOnAnimationFrame, 16);
123
169
  }
124
170
  layoutOnAnimationFrame();
125
171
  }
126
- const getElementLayoutEvent = (nodeRect, parentRect) => ({
127
- nativeEvent: {
128
- layout: getRelativeDimensions(nodeRect, parentRect),
129
- target: nodeRect
130
- },
131
- timeStamp: Date.now()
132
- }), getRelativeDimensions = (a, b) => {
133
- const { height, left, top, width } = a, x = left - b.left, y = top - b.top;
134
- return { x, y, width, height, pageX: a.left, pageY: a.top };
135
- };
172
+ const getElementLayoutEvent = (nodeRect, parentRect, node) => ({
173
+ nativeEvent: {
174
+ layout: getRelativeDimensions(nodeRect, parentRect, node),
175
+ target: nodeRect
176
+ },
177
+ timeStamp: Date.now()
178
+ }),
179
+ getPreTransformDimensions = node => ({
180
+ width: node.offsetWidth,
181
+ height: node.offsetHeight
182
+ }),
183
+ getRelativeDimensions = (a, b, aNode) => {
184
+ const {
185
+ left,
186
+ top
187
+ } = a,
188
+ x = left - b.left,
189
+ y = top - b.top,
190
+ {
191
+ width,
192
+ height
193
+ } = usePretransformDimensions() && aNode ? getPreTransformDimensions(aNode) : {
194
+ width: a.width,
195
+ height: a.height
196
+ };
197
+ return {
198
+ x,
199
+ y,
200
+ width,
201
+ height,
202
+ pageX: a.left,
203
+ pageY: a.top
204
+ };
205
+ };
206
+ function registerLayoutNode(node, onChange, disableKey) {
207
+ return Nodes.add(node), LayoutHandlers.set(node, onChange), disableKey && LayoutDisableKey.set(node, disableKey), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node), IntersectionState.set(node, !0)), () => cleanupNode(node);
208
+ }
209
+ function cleanupNode(node) {
210
+ Nodes.delete(node), LayoutHandlers.delete(node), LayoutDisableKey.delete(node), NodeRectCache.delete(node), IntersectionState.delete(node), globalIntersectionObserver && globalIntersectionObserver.unobserve(node);
211
+ }
212
+ const PrevHostNode = /* @__PURE__ */new WeakMap();
136
213
  function useElementLayout(ref, onLayout) {
137
- const disableKey = (0, import_react.useContext)(DisableLayoutContextKey), node = ensureWebElement(ref.current?.host);
214
+ const disableKey = (0, import_react.useContext)(DisableLayoutContextKey),
215
+ node = ensureWebElement(ref.current?.host);
138
216
  node && onLayout && (LayoutHandlers.set(node, onLayout), LayoutDisableKey.set(node, disableKey)), (0, import_constants.useIsomorphicLayoutEffect)(() => {
217
+ if (!onLayout) return;
218
+ const nextNode = ensureWebElement(ref.current?.host),
219
+ prevNode = PrevHostNode.get(ref);
220
+ if (nextNode === prevNode || (prevNode && cleanupNode(prevNode), PrevHostNode.set(ref, nextNode), !nextNode)) return;
221
+ Nodes.add(nextNode), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(nextNode), IntersectionState.set(nextNode, !0));
222
+ const handler = LayoutHandlers.get(nextNode);
223
+ if (typeof handler != "function") return;
224
+ const parentNode = nextNode.parentElement;
225
+ if (!parentNode) return;
226
+ const nodeRect = nextNode.getBoundingClientRect(),
227
+ parentRect = parentNode.getBoundingClientRect();
228
+ NodeRectCache.set(nextNode, nodeRect), NodeRectCache.set(parentNode, parentRect), handler(getElementLayoutEvent(nodeRect, parentRect, nextNode));
229
+ }), (0, import_constants.useIsomorphicLayoutEffect)(() => {
139
230
  if (!onLayout) return;
140
231
  const node2 = ref.current?.host;
141
232
  if (!node2) return;
142
- Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0));
233
+ Nodes.add(node2), startGlobalObservers(), globalIntersectionObserver && (globalIntersectionObserver.observe(node2), IntersectionState.set(node2, !0)), process.env.NODE_ENV === "development" && isDebugLayout() && console.log("[useElementLayout] register", {
234
+ tag: node2.tagName,
235
+ id: node2.id || void 0,
236
+ className: (node2.className || "").slice(0, 60) || void 0,
237
+ totalNodes: Nodes.size
238
+ });
143
239
  const parentNode = node2.parentNode;
144
- return parentNode && onLayout(
145
- getElementLayoutEvent(
146
- node2.getBoundingClientRect(),
147
- parentNode.getBoundingClientRect()
148
- )
149
- ), () => {
150
- Nodes.delete(node2), LayoutHandlers.delete(node2), NodeRectCache.delete(node2), LastChangeTime.delete(node2), IntersectionState.delete(node2), globalIntersectionObserver && globalIntersectionObserver.unobserve(node2);
240
+ return parentNode && onLayout(getElementLayoutEvent(node2.getBoundingClientRect(), parentNode.getBoundingClientRect(), node2)), () => {
241
+ cleanupNode(node2);
242
+ const swappedNode = PrevHostNode.get(ref);
243
+ swappedNode && swappedNode !== node2 && cleanupNode(swappedNode), PrevHostNode.delete(ref);
151
244
  };
152
245
  }, [ref, !!onLayout]);
153
246
  }
154
247
  function ensureWebElement(x) {
155
- if (!(typeof HTMLElement > "u"))
156
- return x instanceof HTMLElement ? x : void 0;
248
+ if (!(typeof HTMLElement > "u")) return x instanceof HTMLElement ? x : void 0;
157
249
  }
158
- const getBoundingClientRectAsync = (node) => new Promise((res) => {
159
- if (!node || node.nodeType !== 1) return res(!1);
160
- const io = new IntersectionObserver(
161
- (entries) => (io.disconnect(), res(entries[0].boundingClientRect)),
162
- {
250
+ const getBoundingClientRectAsync = node => new Promise(res => {
251
+ if (!node || node.nodeType !== 1) return res(!1);
252
+ const io = new IntersectionObserver(entries => (io.disconnect(), res(entries[0].boundingClientRect)), {
163
253
  threshold: 0
254
+ });
255
+ io.observe(node);
256
+ }),
257
+ measureNode = async (node, relativeTo) => {
258
+ const relativeNode = relativeTo || node?.parentElement;
259
+ if (relativeNode instanceof HTMLElement) {
260
+ const [nodeDim, relativeNodeDim] = await Promise.all([getBoundingClientRectAsync(node), getBoundingClientRectAsync(relativeNode)]);
261
+ if (relativeNodeDim && nodeDim) return getRelativeDimensions(nodeDim, relativeNodeDim, node);
164
262
  }
165
- );
166
- io.observe(node);
167
- }), measureNode = async (node, relativeTo) => {
168
- const relativeNode = relativeTo || node?.parentElement;
169
- if (relativeNode instanceof HTMLElement) {
170
- const [nodeDim, relativeNodeDim] = await Promise.all([
171
- getBoundingClientRectAsync(node),
172
- getBoundingClientRectAsync(relativeNode)
173
- ]);
174
- if (relativeNodeDim && nodeDim)
175
- return getRelativeDimensions(nodeDim, relativeNodeDim);
176
- }
177
- return null;
178
- }, measure = async (node, callback) => {
179
- const out = await measureNode(
180
- node,
181
- node.parentNode instanceof HTMLElement ? node.parentNode : null
182
- );
183
- return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
184
- };
263
+ return null;
264
+ },
265
+ measure = async (node, callback) => {
266
+ const out = await measureNode(node, node.parentNode instanceof HTMLElement ? node.parentNode : null);
267
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
268
+ };
185
269
  function createMeasure(node) {
186
- return (callback) => measure(node, callback);
270
+ return callback => measure(node, callback);
187
271
  }
188
272
  const measureInWindow = async (node, callback) => {
189
- const out = await measureNode(node, null);
190
- return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
191
- }, createMeasureInWindow = (node) => (callback) => measureInWindow(node, callback), measureLayout = async (node, relativeNode, callback) => {
192
- const out = await measureNode(node, relativeNode);
193
- return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
194
- };
273
+ const out = await measureNode(node, null);
274
+ return out && callback?.(out.pageX, out.pageY, out.width, out.height), out;
275
+ },
276
+ createMeasureInWindow = node => callback => measureInWindow(node, callback),
277
+ measureLayout = async (node, relativeNode, callback) => {
278
+ const out = await measureNode(node, relativeNode);
279
+ return out && callback?.(out.x, out.y, out.width, out.height, out.pageX, out.pageY), out;
280
+ };
195
281
  function createMeasureLayout(node) {
196
282
  return (relativeTo, callback) => measureLayout(node, relativeTo, callback);
197
- }
198
- //# sourceMappingURL=index.js.map
283
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.tsx"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["node"]
6
6
  }