@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.
- package/CHANGELOG.md +12 -0
- package/dist/{index-d957aeb6.cjs.prod.js → index-661b9d11.cjs.prod.js} +408 -503
- package/dist/{index-4ea38fa1.cjs.dev.js → index-bf8a2906.cjs.dev.js} +408 -503
- package/dist/{index-27a1523b.esm.js → index-fb77d67d.esm.js} +408 -503
- package/dist/react-three-fiber.cjs.dev.js +20 -23
- package/dist/react-three-fiber.cjs.prod.js +20 -23
- package/dist/react-three-fiber.esm.js +21 -24
- package/native/dist/react-three-fiber-native.cjs.dev.js +36 -44
- package/native/dist/react-three-fiber-native.cjs.prod.js +36 -44
- package/native/dist/react-three-fiber-native.esm.js +37 -45
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var index = require('./index-
|
|
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) => ({
|
|
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: {
|
|
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: {
|
|
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);
|
|
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);
|
|
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
|
-
}
|
|
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]);
|
|
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-
|
|
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) => ({
|
|
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: {
|
|
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: {
|
|
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);
|
|
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);
|
|
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
|
-
}
|
|
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]);
|
|
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-
|
|
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-
|
|
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) => ({
|
|
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: {
|
|
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: {
|
|
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);
|
|
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);
|
|
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
|
-
}
|
|
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]);
|
|
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-
|
|
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()
|
|
70
|
+
event.persist()
|
|
71
|
+
|
|
72
|
+
// Apply offset
|
|
72
73
|
;
|
|
73
74
|
event.nativeEvent.offsetX = event.nativeEvent.locationX;
|
|
74
|
-
event.nativeEvent.offsetY = event.nativeEvent.locationY;
|
|
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) => ({
|
|
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: {
|
|
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: {
|
|
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;
|
|
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
|
-
|
|
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();
|
|
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
|
-
};
|
|
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
|
-
};
|
|
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);
|
|
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);
|
|
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
|
-
}, []);
|
|
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);
|
|
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
|