@react-three/fiber 8.10.0 → 8.10.2

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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-4ea38fa1.cjs.dev.js');
5
+ var index = require('./index-bf8a2906.cjs.dev.js');
6
6
  var _extends = require('@babel/runtime/helpers/extends');
7
7
  var React = require('react');
8
8
  var THREE = require('three');
@@ -50,8 +50,8 @@ const DOM_EVENTS = {
50
50
  onPointerCancel: ['pointercancel', true],
51
51
  onLostPointerCapture: ['lostpointercapture', true]
52
52
  };
53
- /** Default R3F event manager for web */
54
53
 
54
+ /** Default R3F event manager for web */
55
55
  function createPointerEvents(store) {
56
56
  const {
57
57
  handlePointer
@@ -59,28 +59,27 @@ function createPointerEvents(store) {
59
59
  return {
60
60
  priority: 1,
61
61
  enabled: true,
62
-
63
62
  compute(event, state, previous) {
64
63
  // https://github.com/pmndrs/react-three-fiber/pull/782
65
64
  // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
66
65
  state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
67
66
  state.raycaster.setFromCamera(state.pointer, state.camera);
68
67
  },
69
-
70
68
  connected: undefined,
71
- handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({ ...acc,
69
+ handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({
70
+ ...acc,
72
71
  [key]: handlePointer(key)
73
72
  }), {}),
74
73
  connect: target => {
75
74
  var _events$handlers;
76
-
77
75
  const {
78
76
  set,
79
77
  events
80
78
  } = store.getState();
81
79
  events.disconnect == null ? void 0 : events.disconnect();
82
80
  set(state => ({
83
- events: { ...state.events,
81
+ events: {
82
+ ...state.events,
84
83
  connected: target
85
84
  }
86
85
  }));
@@ -96,10 +95,8 @@ function createPointerEvents(store) {
96
95
  set,
97
96
  events
98
97
  } = store.getState();
99
-
100
98
  if (events.connected) {
101
99
  var _events$handlers2;
102
-
103
100
  Object.entries((_events$handlers2 = events.handlers) != null ? _events$handlers2 : []).forEach(([name, event]) => {
104
101
  if (events && events.connected instanceof HTMLElement) {
105
102
  const [eventName] = DOM_EVENTS[name];
@@ -107,7 +104,8 @@ function createPointerEvents(store) {
107
104
  }
108
105
  });
109
106
  set(state => ({
110
- events: { ...state.events,
107
+ events: {
108
+ ...state.events,
111
109
  connected: undefined
112
110
  }
113
111
  }));
@@ -158,13 +156,13 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
158
156
  React__namespace.useImperativeHandle(forwardedRef, () => canvasRef.current);
159
157
  const handlePointerMissed = index.useMutableCallback(onPointerMissed);
160
158
  const [block, setBlock] = React__namespace.useState(false);
161
- const [error, setError] = React__namespace.useState(false); // Suspend this component if block is a promise (2nd run)
162
-
163
- if (block) throw block; // Throw exception outwards if anything within canvas throws
159
+ const [error, setError] = React__namespace.useState(false);
164
160
 
161
+ // Suspend this component if block is a promise (2nd run)
162
+ if (block) throw block;
163
+ // Throw exception outwards if anything within canvas throws
165
164
  if (error) throw error;
166
165
  const root = React__namespace.useRef(null);
167
-
168
166
  if (containerRect.width > 0 && containerRect.height > 0 && canvas) {
169
167
  if (!root.current) root.current = index.createRoot(canvas);
170
168
  root.current.configure({
@@ -185,8 +183,8 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
185
183
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
186
184
  onCreated: state => {
187
185
  // Connect to event source
188
- state.events.connect == null ? void 0 : state.events.connect(eventSource ? index.isRef(eventSource) ? eventSource.current : eventSource : divRef.current); // Set up compute function
189
-
186
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? index.isRef(eventSource) ? eventSource.current : eventSource : divRef.current);
187
+ // Set up compute function
190
188
  if (eventPrefix) {
191
189
  state.setEvents({
192
190
  compute: (event, state) => {
@@ -196,9 +194,8 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
196
194
  state.raycaster.setFromCamera(state.pointer, state.camera);
197
195
  }
198
196
  });
199
- } // Call onCreated callback
200
-
201
-
197
+ }
198
+ // Call onCreated callback
202
199
  onCreated == null ? void 0 : onCreated(state);
203
200
  }
204
201
  });
@@ -210,15 +207,15 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
210
207
  })
211
208
  }, children))));
212
209
  }
213
-
214
210
  index.useIsomorphicLayoutEffect(() => {
215
211
  setCanvas(canvasRef.current);
216
212
  }, []);
217
213
  React__namespace.useEffect(() => {
218
214
  if (canvas) return () => index.unmountComponentAtNode(canvas);
219
- }, [canvas]); // When the event source is not this div, we need to set pointer-events to none
220
- // Or else the canvas will block events from reaching the event source
215
+ }, [canvas]);
221
216
 
217
+ // When the event source is not this div, we need to set pointer-events to none
218
+ // Or else the canvas will block events from reaching the event source
222
219
  const pointerEvents = eventSource ? 'none' : 'auto';
223
220
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
224
221
  ref: divRef,
@@ -243,11 +240,11 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
243
240
  }
244
241
  }, fallback)));
245
242
  });
243
+
246
244
  /**
247
245
  * A DOM canvas which accepts threejs elements as children.
248
246
  * @see https://docs.pmnd.rs/react-three-fiber/api/canvas
249
247
  */
250
-
251
248
  const Canvas = /*#__PURE__*/React__namespace.forwardRef(function CanvasWrapper(props, ref) {
252
249
  return /*#__PURE__*/React__namespace.createElement(itsFine.FiberProvider, null, /*#__PURE__*/React__namespace.createElement(CanvasImpl, _extends({}, props, {
253
250
  ref: ref
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-d957aeb6.cjs.prod.js');
5
+ var index = require('./index-661b9d11.cjs.prod.js');
6
6
  var _extends = require('@babel/runtime/helpers/extends');
7
7
  var React = require('react');
8
8
  var THREE = require('three');
@@ -50,8 +50,8 @@ const DOM_EVENTS = {
50
50
  onPointerCancel: ['pointercancel', true],
51
51
  onLostPointerCapture: ['lostpointercapture', true]
52
52
  };
53
- /** Default R3F event manager for web */
54
53
 
54
+ /** Default R3F event manager for web */
55
55
  function createPointerEvents(store) {
56
56
  const {
57
57
  handlePointer
@@ -59,28 +59,27 @@ function createPointerEvents(store) {
59
59
  return {
60
60
  priority: 1,
61
61
  enabled: true,
62
-
63
62
  compute(event, state, previous) {
64
63
  // https://github.com/pmndrs/react-three-fiber/pull/782
65
64
  // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
66
65
  state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
67
66
  state.raycaster.setFromCamera(state.pointer, state.camera);
68
67
  },
69
-
70
68
  connected: undefined,
71
- handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({ ...acc,
69
+ handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({
70
+ ...acc,
72
71
  [key]: handlePointer(key)
73
72
  }), {}),
74
73
  connect: target => {
75
74
  var _events$handlers;
76
-
77
75
  const {
78
76
  set,
79
77
  events
80
78
  } = store.getState();
81
79
  events.disconnect == null ? void 0 : events.disconnect();
82
80
  set(state => ({
83
- events: { ...state.events,
81
+ events: {
82
+ ...state.events,
84
83
  connected: target
85
84
  }
86
85
  }));
@@ -96,10 +95,8 @@ function createPointerEvents(store) {
96
95
  set,
97
96
  events
98
97
  } = store.getState();
99
-
100
98
  if (events.connected) {
101
99
  var _events$handlers2;
102
-
103
100
  Object.entries((_events$handlers2 = events.handlers) != null ? _events$handlers2 : []).forEach(([name, event]) => {
104
101
  if (events && events.connected instanceof HTMLElement) {
105
102
  const [eventName] = DOM_EVENTS[name];
@@ -107,7 +104,8 @@ function createPointerEvents(store) {
107
104
  }
108
105
  });
109
106
  set(state => ({
110
- events: { ...state.events,
107
+ events: {
108
+ ...state.events,
111
109
  connected: undefined
112
110
  }
113
111
  }));
@@ -158,13 +156,13 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
158
156
  React__namespace.useImperativeHandle(forwardedRef, () => canvasRef.current);
159
157
  const handlePointerMissed = index.useMutableCallback(onPointerMissed);
160
158
  const [block, setBlock] = React__namespace.useState(false);
161
- const [error, setError] = React__namespace.useState(false); // Suspend this component if block is a promise (2nd run)
162
-
163
- if (block) throw block; // Throw exception outwards if anything within canvas throws
159
+ const [error, setError] = React__namespace.useState(false);
164
160
 
161
+ // Suspend this component if block is a promise (2nd run)
162
+ if (block) throw block;
163
+ // Throw exception outwards if anything within canvas throws
165
164
  if (error) throw error;
166
165
  const root = React__namespace.useRef(null);
167
-
168
166
  if (containerRect.width > 0 && containerRect.height > 0 && canvas) {
169
167
  if (!root.current) root.current = index.createRoot(canvas);
170
168
  root.current.configure({
@@ -185,8 +183,8 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
185
183
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
186
184
  onCreated: state => {
187
185
  // Connect to event source
188
- state.events.connect == null ? void 0 : state.events.connect(eventSource ? index.isRef(eventSource) ? eventSource.current : eventSource : divRef.current); // Set up compute function
189
-
186
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? index.isRef(eventSource) ? eventSource.current : eventSource : divRef.current);
187
+ // Set up compute function
190
188
  if (eventPrefix) {
191
189
  state.setEvents({
192
190
  compute: (event, state) => {
@@ -196,9 +194,8 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
196
194
  state.raycaster.setFromCamera(state.pointer, state.camera);
197
195
  }
198
196
  });
199
- } // Call onCreated callback
200
-
201
-
197
+ }
198
+ // Call onCreated callback
202
199
  onCreated == null ? void 0 : onCreated(state);
203
200
  }
204
201
  });
@@ -210,15 +207,15 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
210
207
  })
211
208
  }, children))));
212
209
  }
213
-
214
210
  index.useIsomorphicLayoutEffect(() => {
215
211
  setCanvas(canvasRef.current);
216
212
  }, []);
217
213
  React__namespace.useEffect(() => {
218
214
  if (canvas) return () => index.unmountComponentAtNode(canvas);
219
- }, [canvas]); // When the event source is not this div, we need to set pointer-events to none
220
- // Or else the canvas will block events from reaching the event source
215
+ }, [canvas]);
221
216
 
217
+ // When the event source is not this div, we need to set pointer-events to none
218
+ // Or else the canvas will block events from reaching the event source
222
219
  const pointerEvents = eventSource ? 'none' : 'auto';
223
220
  return /*#__PURE__*/React__namespace.createElement("div", _extends({
224
221
  ref: divRef,
@@ -243,11 +240,11 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
243
240
  }
244
241
  }, fallback)));
245
242
  });
243
+
246
244
  /**
247
245
  * A DOM canvas which accepts threejs elements as children.
248
246
  * @see https://docs.pmnd.rs/react-three-fiber/api/canvas
249
247
  */
250
-
251
248
  const Canvas = /*#__PURE__*/React__namespace.forwardRef(function CanvasWrapper(props, ref) {
252
249
  return /*#__PURE__*/React__namespace.createElement(itsFine.FiberProvider, null, /*#__PURE__*/React__namespace.createElement(CanvasImpl, _extends({}, props, {
253
250
  ref: ref
@@ -1,5 +1,5 @@
1
- import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, i as isRef, E as ErrorBoundary, B as Block, b as useIsomorphicLayoutEffect, d as unmountComponentAtNode } from './index-27a1523b.esm.js';
2
- export { t as ReactThreeFiber, w as _roots, v as act, o as addAfterEffect, n as addEffect, p as addTail, m as advance, j as applyProps, f as context, c as createEvents, g as createPortal, a as createRoot, k as dispose, e as extend, q as flushGlobalEffects, s as getRootState, l as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, A as useFrame, C as useGraph, x as useInstanceHandle, D as useLoader, y as useStore, z as useThree } from './index-27a1523b.esm.js';
1
+ import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, i as isRef, E as ErrorBoundary, B as Block, b as useIsomorphicLayoutEffect, d as unmountComponentAtNode } from './index-fb77d67d.esm.js';
2
+ export { t as ReactThreeFiber, w as _roots, v as act, o as addAfterEffect, n as addEffect, p as addTail, m as advance, j as applyProps, f as context, c as createEvents, g as createPortal, a as createRoot, k as dispose, e as extend, q as flushGlobalEffects, s as getRootState, l as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, A as useFrame, C as useGraph, x as useInstanceHandle, D as useLoader, y as useStore, z as useThree } from './index-fb77d67d.esm.js';
3
3
  import _extends from '@babel/runtime/helpers/esm/extends';
4
4
  import * as React from 'react';
5
5
  import * as THREE from 'three';
@@ -23,8 +23,8 @@ const DOM_EVENTS = {
23
23
  onPointerCancel: ['pointercancel', true],
24
24
  onLostPointerCapture: ['lostpointercapture', true]
25
25
  };
26
- /** Default R3F event manager for web */
27
26
 
27
+ /** Default R3F event manager for web */
28
28
  function createPointerEvents(store) {
29
29
  const {
30
30
  handlePointer
@@ -32,28 +32,27 @@ function createPointerEvents(store) {
32
32
  return {
33
33
  priority: 1,
34
34
  enabled: true,
35
-
36
35
  compute(event, state, previous) {
37
36
  // https://github.com/pmndrs/react-three-fiber/pull/782
38
37
  // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
39
38
  state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
40
39
  state.raycaster.setFromCamera(state.pointer, state.camera);
41
40
  },
42
-
43
41
  connected: undefined,
44
- handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({ ...acc,
42
+ handlers: Object.keys(DOM_EVENTS).reduce((acc, key) => ({
43
+ ...acc,
45
44
  [key]: handlePointer(key)
46
45
  }), {}),
47
46
  connect: target => {
48
47
  var _events$handlers;
49
-
50
48
  const {
51
49
  set,
52
50
  events
53
51
  } = store.getState();
54
52
  events.disconnect == null ? void 0 : events.disconnect();
55
53
  set(state => ({
56
- events: { ...state.events,
54
+ events: {
55
+ ...state.events,
57
56
  connected: target
58
57
  }
59
58
  }));
@@ -69,10 +68,8 @@ function createPointerEvents(store) {
69
68
  set,
70
69
  events
71
70
  } = store.getState();
72
-
73
71
  if (events.connected) {
74
72
  var _events$handlers2;
75
-
76
73
  Object.entries((_events$handlers2 = events.handlers) != null ? _events$handlers2 : []).forEach(([name, event]) => {
77
74
  if (events && events.connected instanceof HTMLElement) {
78
75
  const [eventName] = DOM_EVENTS[name];
@@ -80,7 +77,8 @@ function createPointerEvents(store) {
80
77
  }
81
78
  });
82
79
  set(state => ({
83
- events: { ...state.events,
80
+ events: {
81
+ ...state.events,
84
82
  connected: undefined
85
83
  }
86
84
  }));
@@ -131,13 +129,13 @@ const CanvasImpl = /*#__PURE__*/React.forwardRef(function Canvas({
131
129
  React.useImperativeHandle(forwardedRef, () => canvasRef.current);
132
130
  const handlePointerMissed = useMutableCallback(onPointerMissed);
133
131
  const [block, setBlock] = React.useState(false);
134
- const [error, setError] = React.useState(false); // Suspend this component if block is a promise (2nd run)
135
-
136
- if (block) throw block; // Throw exception outwards if anything within canvas throws
132
+ const [error, setError] = React.useState(false);
137
133
 
134
+ // Suspend this component if block is a promise (2nd run)
135
+ if (block) throw block;
136
+ // Throw exception outwards if anything within canvas throws
138
137
  if (error) throw error;
139
138
  const root = React.useRef(null);
140
-
141
139
  if (containerRect.width > 0 && containerRect.height > 0 && canvas) {
142
140
  if (!root.current) root.current = createRoot(canvas);
143
141
  root.current.configure({
@@ -158,8 +156,8 @@ const CanvasImpl = /*#__PURE__*/React.forwardRef(function Canvas({
158
156
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
159
157
  onCreated: state => {
160
158
  // Connect to event source
161
- state.events.connect == null ? void 0 : state.events.connect(eventSource ? isRef(eventSource) ? eventSource.current : eventSource : divRef.current); // Set up compute function
162
-
159
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? isRef(eventSource) ? eventSource.current : eventSource : divRef.current);
160
+ // Set up compute function
163
161
  if (eventPrefix) {
164
162
  state.setEvents({
165
163
  compute: (event, state) => {
@@ -169,9 +167,8 @@ const CanvasImpl = /*#__PURE__*/React.forwardRef(function Canvas({
169
167
  state.raycaster.setFromCamera(state.pointer, state.camera);
170
168
  }
171
169
  });
172
- } // Call onCreated callback
173
-
174
-
170
+ }
171
+ // Call onCreated callback
175
172
  onCreated == null ? void 0 : onCreated(state);
176
173
  }
177
174
  });
@@ -183,15 +180,15 @@ const CanvasImpl = /*#__PURE__*/React.forwardRef(function Canvas({
183
180
  })
184
181
  }, children))));
185
182
  }
186
-
187
183
  useIsomorphicLayoutEffect(() => {
188
184
  setCanvas(canvasRef.current);
189
185
  }, []);
190
186
  React.useEffect(() => {
191
187
  if (canvas) return () => unmountComponentAtNode(canvas);
192
- }, [canvas]); // When the event source is not this div, we need to set pointer-events to none
193
- // Or else the canvas will block events from reaching the event source
188
+ }, [canvas]);
194
189
 
190
+ // When the event source is not this div, we need to set pointer-events to none
191
+ // Or else the canvas will block events from reaching the event source
195
192
  const pointerEvents = eventSource ? 'none' : 'auto';
196
193
  return /*#__PURE__*/React.createElement("div", _extends({
197
194
  ref: divRef,
@@ -216,11 +213,11 @@ const CanvasImpl = /*#__PURE__*/React.forwardRef(function Canvas({
216
213
  }
217
214
  }, fallback)));
218
215
  });
216
+
219
217
  /**
220
218
  * A DOM canvas which accepts threejs elements as children.
221
219
  * @see https://docs.pmnd.rs/react-three-fiber/api/canvas
222
220
  */
223
-
224
221
  const Canvas = /*#__PURE__*/React.forwardRef(function CanvasWrapper(props, ref) {
225
222
  return /*#__PURE__*/React.createElement(FiberProvider, null, /*#__PURE__*/React.createElement(CanvasImpl, _extends({}, props, {
226
223
  ref: ref
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('../../dist/index-4ea38fa1.cjs.dev.js');
5
+ var index = require('../../dist/index-bf8a2906.cjs.dev.js');
6
6
  var _extends = require('@babel/runtime/helpers/extends');
7
7
  var React = require('react');
8
8
  var THREE = require('three');
@@ -60,36 +60,36 @@ const DOM_EVENTS = {
60
60
  [EVENTS.HOVEROUT]: 'onPointerOut',
61
61
  [EVENTS.PRESSMOVE]: 'onPointerMove'
62
62
  };
63
- /** Default R3F event manager for react-native */
64
63
 
64
+ /** Default R3F event manager for react-native */
65
65
  function createTouchEvents(store) {
66
66
  const {
67
67
  handlePointer
68
68
  } = index.createEvents(store);
69
-
70
69
  const handleTouch = (event, name) => {
71
- event.persist() // Apply offset
70
+ event.persist()
71
+
72
+ // Apply offset
72
73
  ;
73
74
  event.nativeEvent.offsetX = event.nativeEvent.locationX;
74
- event.nativeEvent.offsetY = event.nativeEvent.locationY; // Emulate DOM event
75
+ event.nativeEvent.offsetY = event.nativeEvent.locationY;
75
76
 
77
+ // Emulate DOM event
76
78
  const callback = handlePointer(DOM_EVENTS[name]);
77
79
  return callback(event.nativeEvent);
78
80
  };
79
-
80
81
  return {
81
82
  priority: 1,
82
83
  enabled: true,
83
-
84
84
  compute(event, state, previous) {
85
85
  // https://github.com/pmndrs/react-three-fiber/pull/782
86
86
  // Events trigger outside of canvas when moved, use offsetX/Y by default and allow overrides
87
87
  state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
88
88
  state.raycaster.setFromCamera(state.pointer, state.camera);
89
89
  },
90
-
91
90
  connected: undefined,
92
- handlers: Object.values(EVENTS).reduce((acc, name) => ({ ...acc,
91
+ handlers: Object.values(EVENTS).reduce((acc, name) => ({
92
+ ...acc,
93
93
  [name]: event => handleTouch(event, name)
94
94
  }), {}),
95
95
  connect: () => {
@@ -100,7 +100,8 @@ function createTouchEvents(store) {
100
100
  events.disconnect == null ? void 0 : events.disconnect();
101
101
  const connected = new Pressability__default["default"](events.handlers);
102
102
  set(state => ({
103
- events: { ...state.events,
103
+ events: {
104
+ ...state.events,
104
105
  connected
105
106
  }
106
107
  }));
@@ -112,11 +113,11 @@ function createTouchEvents(store) {
112
113
  set,
113
114
  events
114
115
  } = store.getState();
115
-
116
116
  if (events.connected) {
117
117
  events.connected.reset();
118
118
  set(state => ({
119
- events: { ...state.events,
119
+ events: {
120
+ ...state.events,
120
121
  connected: undefined
121
122
  }
122
123
  }));
@@ -127,45 +128,39 @@ function createTouchEvents(store) {
127
128
 
128
129
  // Check if expo-asset is installed (available with expo modules)
129
130
  let expAsset;
130
-
131
131
  try {
132
132
  var _require;
133
-
134
133
  expAsset = (_require = require('expo-asset')) == null ? void 0 : _require.Asset;
135
134
  } catch (_) {}
135
+
136
136
  /**
137
137
  * Generates an asset based on input type.
138
138
  */
139
-
140
-
141
139
  function getAsset(input) {
142
140
  switch (typeof input) {
143
141
  case 'string':
144
142
  return expAsset.fromURI(input);
145
-
146
143
  case 'number':
147
144
  return expAsset.fromModule(input);
148
-
149
145
  default:
150
146
  throw new Error('R3F: Invalid asset! Must be a URI or module.');
151
147
  }
152
148
  }
153
-
154
149
  let injected = false;
155
150
  function polyfills() {
156
151
  if (!expAsset || injected) return;
157
- injected = true; // Don't pre-process urls, let expo-asset generate an absolute URL
152
+ injected = true;
158
153
 
154
+ // Don't pre-process urls, let expo-asset generate an absolute URL
159
155
  const extractUrlBase = THREE__namespace.LoaderUtils.extractUrlBase.bind(THREE__namespace.LoaderUtils);
156
+ THREE__namespace.LoaderUtils.extractUrlBase = url => typeof url === 'string' ? extractUrlBase(url) : './';
160
157
 
161
- THREE__namespace.LoaderUtils.extractUrlBase = url => typeof url === 'string' ? extractUrlBase(url) : './'; // There's no Image in native, so create a data texture instead
162
-
163
-
158
+ // There's no Image in native, so create a data texture instead
164
159
  const prevTextureLoad = THREE__namespace.TextureLoader.prototype.load;
165
-
166
160
  THREE__namespace.TextureLoader.prototype.load = function load(url, onLoad, onProgress, onError) {
167
- const texture = new THREE__namespace.Texture(); // @ts-ignore
161
+ const texture = new THREE__namespace.Texture();
168
162
 
163
+ // @ts-ignore
169
164
  texture.isDataTexture = true;
170
165
  getAsset(url).downloadAsync().then(asset => {
171
166
  texture.image = {
@@ -179,11 +174,10 @@ function polyfills() {
179
174
  onLoad == null ? void 0 : onLoad(texture);
180
175
  }).catch(onError);
181
176
  return texture;
182
- }; // Fetches assets via XMLHttpRequest
183
-
177
+ };
184
178
 
179
+ // Fetches assets via XMLHttpRequest
185
180
  const prevFileLoad = THREE__namespace.FileLoader.prototype.load;
186
-
187
181
  THREE__namespace.FileLoader.prototype.load = function (url, onLoad, onProgress, onError) {
188
182
  if (this.path) url = this.path + url;
189
183
  const request = new XMLHttpRequest();
@@ -214,18 +208,16 @@ function polyfills() {
214
208
  }, false);
215
209
  if (this.responseType) request.responseType = this.responseType;
216
210
  if (this.withCredentials) request.withCredentials = this.withCredentials;
217
-
218
211
  for (const header in this.requestHeader) {
219
212
  request.setRequestHeader(header, this.requestHeader[header]);
220
213
  }
221
-
222
214
  request.send(null);
223
215
  this.manager.itemStart(url);
224
216
  });
225
217
  return request;
226
- }; // Cleanup function
227
-
218
+ };
228
219
 
220
+ // Cleanup function
229
221
  return () => {
230
222
  THREE__namespace.LoaderUtils.extractUrlBase = extractUrlBase;
231
223
  THREE__namespace.TextureLoader.prototype.load = prevTextureLoad;
@@ -276,14 +268,16 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
276
268
  React__namespace.useImperativeHandle(forwardedRef, () => viewRef.current);
277
269
  const handlePointerMissed = index.useMutableCallback(onPointerMissed);
278
270
  const [block, setBlock] = React__namespace.useState(false);
279
- const [error, setError] = React__namespace.useState(undefined); // Suspend this component if block is a promise (2nd run)
280
-
281
- if (block) throw block; // Throw exception outwards if anything within canvas throws
271
+ const [error, setError] = React__namespace.useState(undefined);
282
272
 
273
+ // Suspend this component if block is a promise (2nd run)
274
+ if (block) throw block;
275
+ // Throw exception outwards if anything within canvas throws
283
276
  if (error) throw error;
284
277
  const viewRef = React__namespace.useRef(null);
285
- const root = React__namespace.useRef(null); // Inject and cleanup RN polyfills if able
278
+ const root = React__namespace.useRef(null);
286
279
 
280
+ // Inject and cleanup RN polyfills if able
287
281
  React__namespace.useLayoutEffect(() => polyfills(), []);
288
282
  const onLayout = React__namespace.useCallback(e => {
289
283
  const {
@@ -298,9 +292,10 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
298
292
  top: y,
299
293
  left: x
300
294
  });
301
- }, []); // Called on context create or swap
302
- // https://github.com/pmndrs/react-three-fiber/pull/2297
295
+ }, []);
303
296
 
297
+ // Called on context create or swap
298
+ // https://github.com/pmndrs/react-three-fiber/pull/2297
304
299
  const onContextCreate = React__namespace.useCallback(context => {
305
300
  const canvasShim = {
306
301
  width: context.drawingBufferWidth,
@@ -314,7 +309,6 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
314
309
  root.current = index.createRoot(canvasShim);
315
310
  setCanvas(canvasShim);
316
311
  }, []);
317
-
318
312
  if (root.current && width > 0 && height > 0) {
319
313
  root.current.configure({
320
314
  gl,
@@ -343,16 +337,15 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
343
337
  onCreated: state => {
344
338
  // Bind events after creation
345
339
  const handlers = state.events.connect == null ? void 0 : state.events.connect(viewRef.current);
346
- setBind(handlers); // Bind render to RN bridge
340
+ setBind(handlers);
347
341
 
342
+ // Bind render to RN bridge
348
343
  const context = state.gl.getContext();
349
344
  const renderFrame = state.gl.render.bind(state.gl);
350
-
351
345
  state.gl.render = (scene, camera) => {
352
346
  renderFrame(scene, camera);
353
347
  context.endFrameEXP();
354
348
  };
355
-
356
349
  return onCreated == null ? void 0 : onCreated(state);
357
350
  }
358
351
  });
@@ -364,7 +357,6 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
364
357
  })
365
358
  }, children))));
366
359
  }
367
-
368
360
  React__namespace.useEffect(() => {
369
361
  if (canvas) {
370
362
  return () => index.unmountComponentAtNode(canvas);
@@ -382,11 +374,11 @@ const CanvasImpl = /*#__PURE__*/React__namespace.forwardRef(({
382
374
  style: reactNative.StyleSheet.absoluteFill
383
375
  }));
384
376
  });
377
+
385
378
  /**
386
379
  * A native canvas which accepts threejs elements as children.
387
380
  * @see https://docs.pmnd.rs/react-three-fiber/api/canvas
388
381
  */
389
-
390
382
  const Canvas = /*#__PURE__*/React__namespace.forwardRef(function CanvasWrapper(props, ref) {
391
383
  return /*#__PURE__*/React__namespace.createElement(itsFine.FiberProvider, null, /*#__PURE__*/React__namespace.createElement(CanvasImpl, _extends({}, props, {
392
384
  ref: ref