@react-three/fiber 8.0.11 → 8.0.14
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 +18 -0
- package/dist/declarations/src/core/events.d.ts +1 -1
- package/dist/declarations/src/core/store.d.ts +1 -1
- package/dist/declarations/src/core/utils.d.ts +1 -0
- package/dist/declarations/src/three-types.d.ts +2 -0
- package/dist/{index-e936c560.cjs.prod.js → index-5844e9ba.cjs.prod.js} +78 -60
- package/dist/{index-3c7aae97.esm.js → index-c0771a1d.esm.js} +74 -54
- package/dist/{index-f7939a95.cjs.dev.js → index-cf0e5bff.cjs.dev.js} +78 -60
- package/dist/react-three-fiber.cjs.dev.js +6 -8
- package/dist/react-three-fiber.cjs.prod.js +6 -8
- package/dist/react-three-fiber.esm.js +2 -2
- package/native/dist/react-three-fiber-native.cjs.dev.js +5 -7
- package/native/dist/react-three-fiber-native.cjs.prod.js +5 -7
- package/native/dist/react-three-fiber-native.esm.js +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @react-three/fiber
|
|
2
2
|
|
|
3
|
+
## 8.0.14
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5559a119: Add support for recoverable errors
|
|
8
|
+
|
|
9
|
+
## 8.0.13
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 9d77d8e2: fix: detach attribute removal
|
|
14
|
+
|
|
15
|
+
## 8.0.12
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- 3d10413f: fix portal layers
|
|
20
|
+
|
|
3
21
|
## 8.0.11
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
|
@@ -62,7 +62,7 @@ export interface PointerCaptureTarget {
|
|
|
62
62
|
intersection: Intersection;
|
|
63
63
|
target: Element;
|
|
64
64
|
}
|
|
65
|
-
export declare function getEventPriority():
|
|
65
|
+
export declare function getEventPriority(): 1 | 4 | 16;
|
|
66
66
|
export declare function removeInteractivity(store: UseBoundStore<RootState>, object: THREE.Object3D): void;
|
|
67
67
|
export declare function createEvents(store: UseBoundStore<RootState>): {
|
|
68
68
|
handlePointer: (name: string) => (event: DomEvent) => void;
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { GetState, SetState, StoreApi, UseBoundStore } from 'zustand';
|
|
4
4
|
import { DomEvent, EventManager, PointerCaptureTarget, ThreeEvent } from './events';
|
|
5
5
|
import { Camera } from './utils';
|
|
6
|
-
export declare const privateKeys: readonly ["set", "get", "setSize", "setFrameloop", "setDpr", "events", "invalidate", "advance", "
|
|
6
|
+
export declare const privateKeys: readonly ["set", "get", "setSize", "setFrameloop", "setDpr", "events", "invalidate", "advance", "size", "viewport"];
|
|
7
7
|
export declare type PrivateKeys = typeof privateKeys[number];
|
|
8
8
|
export interface Intersection extends THREE.Intersection {
|
|
9
9
|
eventObject: THREE.Object3D;
|
|
@@ -14,6 +14,7 @@ export declare type UnblockProps = {
|
|
|
14
14
|
export declare function Block({ set }: Omit<UnblockProps, 'children'>): null;
|
|
15
15
|
export declare class ErrorBoundary extends React.Component<{
|
|
16
16
|
set: React.Dispatch<any>;
|
|
17
|
+
children: React.ReactNode;
|
|
17
18
|
}, {
|
|
18
19
|
error: boolean;
|
|
19
20
|
}> {
|
|
@@ -102,6 +102,7 @@ export declare type ConeGeometryProps = BufferGeometryNode<THREE.ConeGeometry, t
|
|
|
102
102
|
export declare type CylinderGeometryProps = BufferGeometryNode<THREE.CylinderGeometry, typeof THREE.CylinderGeometry>;
|
|
103
103
|
export declare type CircleGeometryProps = BufferGeometryNode<THREE.CircleGeometry, typeof THREE.CircleGeometry>;
|
|
104
104
|
export declare type BoxGeometryProps = BufferGeometryNode<THREE.BoxGeometry, typeof THREE.BoxGeometry>;
|
|
105
|
+
export declare type CapsuleGeometryProps = BufferGeometryNode<THREE.CapsuleBufferGeometry, typeof THREE.CapsuleBufferGeometry>;
|
|
105
106
|
export declare type MaterialProps = MaterialNode<THREE.Material, [THREE.MaterialParameters]>;
|
|
106
107
|
export declare type ShadowMaterialProps = MaterialNode<THREE.ShadowMaterial, [THREE.ShaderMaterialParameters]>;
|
|
107
108
|
export declare type SpriteMaterialProps = MaterialNode<THREE.SpriteMaterial, [THREE.SpriteMaterialParameters]>;
|
|
@@ -245,6 +246,7 @@ declare global {
|
|
|
245
246
|
cylinderGeometry: CylinderGeometryProps;
|
|
246
247
|
circleGeometry: CircleGeometryProps;
|
|
247
248
|
boxGeometry: BoxGeometryProps;
|
|
249
|
+
capsuleGeometry: CapsuleGeometryProps;
|
|
248
250
|
material: MaterialProps;
|
|
249
251
|
shadowMaterial: ShadowMaterialProps;
|
|
250
252
|
spriteMaterial: SpriteMaterialProps;
|
|
@@ -19,14 +19,12 @@ function _interopNamespace(e) {
|
|
|
19
19
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
20
|
Object.defineProperty(n, k, d.get ? d : {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return e[k];
|
|
24
|
-
}
|
|
22
|
+
get: function () { return e[k]; }
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
25
|
});
|
|
28
26
|
}
|
|
29
|
-
n[
|
|
27
|
+
n["default"] = e;
|
|
30
28
|
return Object.freeze(n);
|
|
31
29
|
}
|
|
32
30
|
|
|
@@ -230,7 +228,10 @@ function detach(parent, child, type) {
|
|
|
230
228
|
target,
|
|
231
229
|
key
|
|
232
230
|
} = resolve(parent, type);
|
|
233
|
-
|
|
231
|
+
const previous = child.__r3f.previousAttach; // When the previous value was undefined, it means the value was never set to begin with
|
|
232
|
+
|
|
233
|
+
if (previous === undefined) delete target[key]; // Otherwise set the previous value
|
|
234
|
+
else target[key] = previous;
|
|
234
235
|
} else (_child$__r3f = child.__r3f) == null ? void 0 : _child$__r3f.previousAttach == null ? void 0 : _child$__r3f.previousAttach(parent, child);
|
|
235
236
|
|
|
236
237
|
(_child$__r3f2 = child.__r3f) == null ? true : delete _child$__r3f2.previousAttach;
|
|
@@ -344,35 +345,35 @@ function applyProps$1(instance, data) {
|
|
|
344
345
|
localState.eventCount = Object.keys(localState.handlers).length;
|
|
345
346
|
} // Special treatment for objects with support for set/copy, and layers
|
|
346
347
|
else if (targetProp && targetProp.set && (targetProp.copy || targetProp instanceof THREE__namespace.Layers)) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
363
|
-
|
|
364
|
-
const supportsColorManagement = THREE__namespace.ColorManagement;
|
|
365
|
-
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
366
|
-
} // Else, just overwrite the value
|
|
367
|
-
|
|
368
|
-
} else {
|
|
369
|
-
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
348
|
+
// If value is an array
|
|
349
|
+
if (Array.isArray(value)) {
|
|
350
|
+
if (targetProp.fromArray) targetProp.fromArray(value);else targetProp.set(...value);
|
|
351
|
+
} // Test again target.copy(class) next ...
|
|
352
|
+
else if (targetProp.copy && value && value.constructor && targetProp.constructor.name === value.constructor.name) {
|
|
353
|
+
targetProp.copy(value);
|
|
354
|
+
} // If nothing else fits, just set the single value, ignore undefined
|
|
355
|
+
// https://github.com/pmndrs/react-three-fiber/issues/274
|
|
356
|
+
else if (value !== undefined) {
|
|
357
|
+
const isColor = targetProp instanceof THREE__namespace.Color; // Allow setting array scalars
|
|
358
|
+
|
|
359
|
+
if (!isColor && targetProp.setScalar) targetProp.setScalar(value); // Layers have no copy function, we must therefore copy the mask property
|
|
360
|
+
else if (targetProp instanceof THREE__namespace.Layers && value instanceof THREE__namespace.Layers) targetProp.mask = value.mask; // Otherwise just set ...
|
|
361
|
+
else targetProp.set(value); // For versions of three which don't support THREE.ColorManagement,
|
|
362
|
+
// Auto-convert sRGB colors
|
|
370
363
|
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
371
364
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
365
|
+
const supportsColorManagement = THREE__namespace.ColorManagement;
|
|
366
|
+
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
367
|
+
} // Else, just overwrite the value
|
|
368
|
+
|
|
369
|
+
} else {
|
|
370
|
+
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
371
|
+
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
372
|
+
|
|
373
|
+
if (!rootState.linear && currentInstance[key] instanceof THREE__namespace.Texture) {
|
|
374
|
+
currentInstance[key].encoding = THREE__namespace.sRGBEncoding;
|
|
375
375
|
}
|
|
376
|
+
}
|
|
376
377
|
|
|
377
378
|
invalidateInstance(instance);
|
|
378
379
|
});
|
|
@@ -872,7 +873,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
872
873
|
const target = catalogue[name];
|
|
873
874
|
|
|
874
875
|
if (!target) {
|
|
875
|
-
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://
|
|
876
|
+
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`;
|
|
876
877
|
} // Throw if an object or literal was passed for args
|
|
877
878
|
|
|
878
879
|
|
|
@@ -1056,7 +1057,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1056
1057
|
});
|
|
1057
1058
|
}
|
|
1058
1059
|
|
|
1059
|
-
const reconciler = Reconciler__default[
|
|
1060
|
+
const reconciler = Reconciler__default["default"]({
|
|
1060
1061
|
createInstance,
|
|
1061
1062
|
removeChild,
|
|
1062
1063
|
appendChild,
|
|
@@ -1141,7 +1142,6 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1141
1142
|
shouldSetTextContent: () => false,
|
|
1142
1143
|
clearContainer: () => false,
|
|
1143
1144
|
detachDeletedInstance: () => {},
|
|
1144
|
-
createTextInstance: () => {},
|
|
1145
1145
|
|
|
1146
1146
|
hideInstance(instance) {
|
|
1147
1147
|
var _instance$__r3f5;
|
|
@@ -1169,10 +1169,11 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1169
1169
|
invalidateInstance(instance);
|
|
1170
1170
|
},
|
|
1171
1171
|
|
|
1172
|
+
createTextInstance: () => {},
|
|
1172
1173
|
hideTextInstance: () => {
|
|
1173
1174
|
throw new Error('Text is not allowed in the R3F tree.');
|
|
1174
1175
|
},
|
|
1175
|
-
|
|
1176
|
+
unhideTextInstance: () => {},
|
|
1176
1177
|
getCurrentEventPriority: () => getEventPriority ? getEventPriority() : constants.DefaultEventPriority,
|
|
1177
1178
|
// @ts-ignore
|
|
1178
1179
|
now: typeof performance !== 'undefined' && is.fun(performance.now) ? performance.now : is.fun(Date.now) ? Date.now : undefined,
|
|
@@ -1189,12 +1190,12 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1189
1190
|
};
|
|
1190
1191
|
}
|
|
1191
1192
|
|
|
1192
|
-
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', '
|
|
1193
|
+
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', 'size', 'viewport'];
|
|
1193
1194
|
const isRenderer = def => !!(def != null && def.render);
|
|
1194
1195
|
const context = /*#__PURE__*/React__namespace.createContext(null);
|
|
1195
1196
|
|
|
1196
1197
|
const createStore = (invalidate, advance) => {
|
|
1197
|
-
const rootState = create__default[
|
|
1198
|
+
const rootState = create__default["default"]((set, get) => {
|
|
1198
1199
|
const position = new THREE__namespace.Vector3();
|
|
1199
1200
|
const defaultTarget = new THREE__namespace.Vector3();
|
|
1200
1201
|
const tempTarget = new THREE__namespace.Vector3();
|
|
@@ -1652,6 +1653,13 @@ const createRendererInstance = (gl, canvas) => {
|
|
|
1652
1653
|
});
|
|
1653
1654
|
};
|
|
1654
1655
|
|
|
1656
|
+
const logRecoverableError = typeof reportError === 'function' ? // In modern browsers, reportError will dispatch an error event,
|
|
1657
|
+
// emulating an uncaught JavaScript error.
|
|
1658
|
+
reportError : error => {
|
|
1659
|
+
// In older browsers and test environments, fallback to console.error.
|
|
1660
|
+
console.error(error);
|
|
1661
|
+
};
|
|
1662
|
+
|
|
1655
1663
|
function createRoot(canvas) {
|
|
1656
1664
|
// Check against mistaken use of createRoot
|
|
1657
1665
|
let prevRoot = roots.get(canvas);
|
|
@@ -1661,7 +1669,7 @@ function createRoot(canvas) {
|
|
|
1661
1669
|
|
|
1662
1670
|
const store = prevStore || createStore(invalidate, advance); // Create renderer
|
|
1663
1671
|
|
|
1664
|
-
const fiber = prevFiber || reconciler.createContainer(store, constants.ConcurrentRoot, false, null); // Map it
|
|
1672
|
+
const fiber = prevFiber || reconciler.createContainer(store, constants.ConcurrentRoot, null, false, null, null, logRecoverableError, null); // Map it
|
|
1665
1673
|
|
|
1666
1674
|
if (!prevRoot) roots.set(canvas, {
|
|
1667
1675
|
fiber,
|
|
@@ -1942,29 +1950,28 @@ function Portal({
|
|
|
1942
1950
|
const previousRoot = useStore();
|
|
1943
1951
|
const [raycaster] = React__namespace.useState(() => new THREE__namespace.Raycaster());
|
|
1944
1952
|
const [pointer] = React__namespace.useState(() => new THREE__namespace.Vector2());
|
|
1945
|
-
const inject = React__namespace.useCallback((
|
|
1946
|
-
const intersect = { ...
|
|
1947
|
-
};
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
}
|
|
1958
|
-
}
|
|
1959
|
-
|
|
1953
|
+
const inject = React__namespace.useCallback((rootState, injectState) => {
|
|
1954
|
+
const intersect = { ...rootState
|
|
1955
|
+
}; // all prev state props
|
|
1956
|
+
// Only the fields of "rootState" that do not differ from injectState
|
|
1957
|
+
// Some props should be off-limits
|
|
1958
|
+
// Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1959
|
+
|
|
1960
|
+
Object.keys(rootState).forEach(key => {
|
|
1961
|
+
if ( // Some props should be off-limits
|
|
1962
|
+
privateKeys.includes(key) || // Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1963
|
+
rootState[key] !== injectState[key]) {
|
|
1964
|
+
delete intersect[key];
|
|
1965
|
+
}
|
|
1966
|
+
});
|
|
1960
1967
|
let viewport = undefined;
|
|
1961
1968
|
|
|
1962
1969
|
if (injectState && size) {
|
|
1963
1970
|
const camera = injectState.camera; // Calculate the override viewport, if present
|
|
1964
1971
|
|
|
1965
|
-
viewport =
|
|
1972
|
+
viewport = rootState.viewport.getCurrentViewport(camera, new THREE__namespace.Vector3(), size); // Update the portal camera, if it differs from the previous layer
|
|
1966
1973
|
|
|
1967
|
-
if (camera !==
|
|
1974
|
+
if (camera !== rootState.camera) updateCamera(camera, size);
|
|
1968
1975
|
}
|
|
1969
1976
|
|
|
1970
1977
|
return { // The intersect consists of the previous root state
|
|
@@ -1977,14 +1984,14 @@ function Portal({
|
|
|
1977
1984
|
// Their previous root is the layer before it
|
|
1978
1985
|
previousRoot,
|
|
1979
1986
|
// Events, size and viewport can be overridden by the inject layer
|
|
1980
|
-
events: { ...
|
|
1987
|
+
events: { ...rootState.events,
|
|
1981
1988
|
...(injectState == null ? void 0 : injectState.events),
|
|
1982
1989
|
...events
|
|
1983
1990
|
},
|
|
1984
|
-
size: { ...
|
|
1991
|
+
size: { ...rootState.size,
|
|
1985
1992
|
...size
|
|
1986
1993
|
},
|
|
1987
|
-
viewport: { ...
|
|
1994
|
+
viewport: { ...rootState.viewport,
|
|
1988
1995
|
...viewport
|
|
1989
1996
|
},
|
|
1990
1997
|
...rest
|
|
@@ -1992,9 +1999,20 @@ function Portal({
|
|
|
1992
1999
|
}, [state]);
|
|
1993
2000
|
const [usePortalStore] = React__namespace.useState(() => {
|
|
1994
2001
|
// Create a mirrored store, based on the previous root with a few overrides ...
|
|
1995
|
-
new THREE__namespace.Vector3();
|
|
1996
2002
|
const previousState = previousRoot.getState();
|
|
1997
|
-
const store = create__default[
|
|
2003
|
+
const store = create__default["default"]((set, get) => ({ ...previousState,
|
|
2004
|
+
scene: container,
|
|
2005
|
+
raycaster,
|
|
2006
|
+
pointer,
|
|
2007
|
+
mouse: pointer,
|
|
2008
|
+
previousRoot,
|
|
2009
|
+
events: { ...previousState.events,
|
|
2010
|
+
...events
|
|
2011
|
+
},
|
|
2012
|
+
size: { ...previousState.size,
|
|
2013
|
+
...size
|
|
2014
|
+
},
|
|
2015
|
+
...rest,
|
|
1998
2016
|
// Set and get refer to this root-state
|
|
1999
2017
|
set,
|
|
2000
2018
|
get,
|
|
@@ -201,7 +201,10 @@ function detach(parent, child, type) {
|
|
|
201
201
|
target,
|
|
202
202
|
key
|
|
203
203
|
} = resolve(parent, type);
|
|
204
|
-
|
|
204
|
+
const previous = child.__r3f.previousAttach; // When the previous value was undefined, it means the value was never set to begin with
|
|
205
|
+
|
|
206
|
+
if (previous === undefined) delete target[key]; // Otherwise set the previous value
|
|
207
|
+
else target[key] = previous;
|
|
205
208
|
} else (_child$__r3f = child.__r3f) == null ? void 0 : _child$__r3f.previousAttach == null ? void 0 : _child$__r3f.previousAttach(parent, child);
|
|
206
209
|
|
|
207
210
|
(_child$__r3f2 = child.__r3f) == null ? true : delete _child$__r3f2.previousAttach;
|
|
@@ -315,35 +318,35 @@ function applyProps$1(instance, data) {
|
|
|
315
318
|
localState.eventCount = Object.keys(localState.handlers).length;
|
|
316
319
|
} // Special treatment for objects with support for set/copy, and layers
|
|
317
320
|
else if (targetProp && targetProp.set && (targetProp.copy || targetProp instanceof THREE.Layers)) {
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
334
|
-
|
|
335
|
-
const supportsColorManagement = THREE.ColorManagement;
|
|
336
|
-
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
337
|
-
} // Else, just overwrite the value
|
|
338
|
-
|
|
339
|
-
} else {
|
|
340
|
-
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
321
|
+
// If value is an array
|
|
322
|
+
if (Array.isArray(value)) {
|
|
323
|
+
if (targetProp.fromArray) targetProp.fromArray(value);else targetProp.set(...value);
|
|
324
|
+
} // Test again target.copy(class) next ...
|
|
325
|
+
else if (targetProp.copy && value && value.constructor && targetProp.constructor.name === value.constructor.name) {
|
|
326
|
+
targetProp.copy(value);
|
|
327
|
+
} // If nothing else fits, just set the single value, ignore undefined
|
|
328
|
+
// https://github.com/pmndrs/react-three-fiber/issues/274
|
|
329
|
+
else if (value !== undefined) {
|
|
330
|
+
const isColor = targetProp instanceof THREE.Color; // Allow setting array scalars
|
|
331
|
+
|
|
332
|
+
if (!isColor && targetProp.setScalar) targetProp.setScalar(value); // Layers have no copy function, we must therefore copy the mask property
|
|
333
|
+
else if (targetProp instanceof THREE.Layers && value instanceof THREE.Layers) targetProp.mask = value.mask; // Otherwise just set ...
|
|
334
|
+
else targetProp.set(value); // For versions of three which don't support THREE.ColorManagement,
|
|
335
|
+
// Auto-convert sRGB colors
|
|
341
336
|
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
342
337
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
338
|
+
const supportsColorManagement = THREE.ColorManagement;
|
|
339
|
+
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
340
|
+
} // Else, just overwrite the value
|
|
341
|
+
|
|
342
|
+
} else {
|
|
343
|
+
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
344
|
+
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
345
|
+
|
|
346
|
+
if (!rootState.linear && currentInstance[key] instanceof THREE.Texture) {
|
|
347
|
+
currentInstance[key].encoding = THREE.sRGBEncoding;
|
|
346
348
|
}
|
|
349
|
+
}
|
|
347
350
|
|
|
348
351
|
invalidateInstance(instance);
|
|
349
352
|
});
|
|
@@ -843,7 +846,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
843
846
|
const target = catalogue[name];
|
|
844
847
|
|
|
845
848
|
if (!target) {
|
|
846
|
-
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://
|
|
849
|
+
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`;
|
|
847
850
|
} // Throw if an object or literal was passed for args
|
|
848
851
|
|
|
849
852
|
|
|
@@ -1112,7 +1115,6 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1112
1115
|
shouldSetTextContent: () => false,
|
|
1113
1116
|
clearContainer: () => false,
|
|
1114
1117
|
detachDeletedInstance: () => {},
|
|
1115
|
-
createTextInstance: () => {},
|
|
1116
1118
|
|
|
1117
1119
|
hideInstance(instance) {
|
|
1118
1120
|
var _instance$__r3f5;
|
|
@@ -1140,10 +1142,11 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1140
1142
|
invalidateInstance(instance);
|
|
1141
1143
|
},
|
|
1142
1144
|
|
|
1145
|
+
createTextInstance: () => {},
|
|
1143
1146
|
hideTextInstance: () => {
|
|
1144
1147
|
throw new Error('Text is not allowed in the R3F tree.');
|
|
1145
1148
|
},
|
|
1146
|
-
|
|
1149
|
+
unhideTextInstance: () => {},
|
|
1147
1150
|
getCurrentEventPriority: () => getEventPriority ? getEventPriority() : DefaultEventPriority,
|
|
1148
1151
|
// @ts-ignore
|
|
1149
1152
|
now: typeof performance !== 'undefined' && is.fun(performance.now) ? performance.now : is.fun(Date.now) ? Date.now : undefined,
|
|
@@ -1160,7 +1163,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1160
1163
|
};
|
|
1161
1164
|
}
|
|
1162
1165
|
|
|
1163
|
-
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', '
|
|
1166
|
+
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', 'size', 'viewport'];
|
|
1164
1167
|
const isRenderer = def => !!(def != null && def.render);
|
|
1165
1168
|
const context = /*#__PURE__*/React.createContext(null);
|
|
1166
1169
|
|
|
@@ -1623,6 +1626,13 @@ const createRendererInstance = (gl, canvas) => {
|
|
|
1623
1626
|
});
|
|
1624
1627
|
};
|
|
1625
1628
|
|
|
1629
|
+
const logRecoverableError = typeof reportError === 'function' ? // In modern browsers, reportError will dispatch an error event,
|
|
1630
|
+
// emulating an uncaught JavaScript error.
|
|
1631
|
+
reportError : error => {
|
|
1632
|
+
// In older browsers and test environments, fallback to console.error.
|
|
1633
|
+
console.error(error);
|
|
1634
|
+
};
|
|
1635
|
+
|
|
1626
1636
|
function createRoot(canvas) {
|
|
1627
1637
|
// Check against mistaken use of createRoot
|
|
1628
1638
|
let prevRoot = roots.get(canvas);
|
|
@@ -1632,7 +1642,7 @@ function createRoot(canvas) {
|
|
|
1632
1642
|
|
|
1633
1643
|
const store = prevStore || createStore(invalidate, advance); // Create renderer
|
|
1634
1644
|
|
|
1635
|
-
const fiber = prevFiber || reconciler.createContainer(store, ConcurrentRoot, false, null); // Map it
|
|
1645
|
+
const fiber = prevFiber || reconciler.createContainer(store, ConcurrentRoot, null, false, null, null, logRecoverableError, null); // Map it
|
|
1636
1646
|
|
|
1637
1647
|
if (!prevRoot) roots.set(canvas, {
|
|
1638
1648
|
fiber,
|
|
@@ -1913,29 +1923,28 @@ function Portal({
|
|
|
1913
1923
|
const previousRoot = useStore();
|
|
1914
1924
|
const [raycaster] = React.useState(() => new THREE.Raycaster());
|
|
1915
1925
|
const [pointer] = React.useState(() => new THREE.Vector2());
|
|
1916
|
-
const inject = React.useCallback((
|
|
1917
|
-
const intersect = { ...
|
|
1918
|
-
};
|
|
1919
|
-
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
|
|
1925
|
-
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
}
|
|
1929
|
-
}
|
|
1930
|
-
|
|
1926
|
+
const inject = React.useCallback((rootState, injectState) => {
|
|
1927
|
+
const intersect = { ...rootState
|
|
1928
|
+
}; // all prev state props
|
|
1929
|
+
// Only the fields of "rootState" that do not differ from injectState
|
|
1930
|
+
// Some props should be off-limits
|
|
1931
|
+
// Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1932
|
+
|
|
1933
|
+
Object.keys(rootState).forEach(key => {
|
|
1934
|
+
if ( // Some props should be off-limits
|
|
1935
|
+
privateKeys.includes(key) || // Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1936
|
+
rootState[key] !== injectState[key]) {
|
|
1937
|
+
delete intersect[key];
|
|
1938
|
+
}
|
|
1939
|
+
});
|
|
1931
1940
|
let viewport = undefined;
|
|
1932
1941
|
|
|
1933
1942
|
if (injectState && size) {
|
|
1934
1943
|
const camera = injectState.camera; // Calculate the override viewport, if present
|
|
1935
1944
|
|
|
1936
|
-
viewport =
|
|
1945
|
+
viewport = rootState.viewport.getCurrentViewport(camera, new THREE.Vector3(), size); // Update the portal camera, if it differs from the previous layer
|
|
1937
1946
|
|
|
1938
|
-
if (camera !==
|
|
1947
|
+
if (camera !== rootState.camera) updateCamera(camera, size);
|
|
1939
1948
|
}
|
|
1940
1949
|
|
|
1941
1950
|
return { // The intersect consists of the previous root state
|
|
@@ -1948,14 +1957,14 @@ function Portal({
|
|
|
1948
1957
|
// Their previous root is the layer before it
|
|
1949
1958
|
previousRoot,
|
|
1950
1959
|
// Events, size and viewport can be overridden by the inject layer
|
|
1951
|
-
events: { ...
|
|
1960
|
+
events: { ...rootState.events,
|
|
1952
1961
|
...(injectState == null ? void 0 : injectState.events),
|
|
1953
1962
|
...events
|
|
1954
1963
|
},
|
|
1955
|
-
size: { ...
|
|
1964
|
+
size: { ...rootState.size,
|
|
1956
1965
|
...size
|
|
1957
1966
|
},
|
|
1958
|
-
viewport: { ...
|
|
1967
|
+
viewport: { ...rootState.viewport,
|
|
1959
1968
|
...viewport
|
|
1960
1969
|
},
|
|
1961
1970
|
...rest
|
|
@@ -1963,9 +1972,20 @@ function Portal({
|
|
|
1963
1972
|
}, [state]);
|
|
1964
1973
|
const [usePortalStore] = React.useState(() => {
|
|
1965
1974
|
// Create a mirrored store, based on the previous root with a few overrides ...
|
|
1966
|
-
new THREE.Vector3();
|
|
1967
1975
|
const previousState = previousRoot.getState();
|
|
1968
|
-
const store = create((set, get) => ({ ...
|
|
1976
|
+
const store = create((set, get) => ({ ...previousState,
|
|
1977
|
+
scene: container,
|
|
1978
|
+
raycaster,
|
|
1979
|
+
pointer,
|
|
1980
|
+
mouse: pointer,
|
|
1981
|
+
previousRoot,
|
|
1982
|
+
events: { ...previousState.events,
|
|
1983
|
+
...events
|
|
1984
|
+
},
|
|
1985
|
+
size: { ...previousState.size,
|
|
1986
|
+
...size
|
|
1987
|
+
},
|
|
1988
|
+
...rest,
|
|
1969
1989
|
// Set and get refer to this root-state
|
|
1970
1990
|
set,
|
|
1971
1991
|
get,
|
|
@@ -19,14 +19,12 @@ function _interopNamespace(e) {
|
|
|
19
19
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
20
20
|
Object.defineProperty(n, k, d.get ? d : {
|
|
21
21
|
enumerable: true,
|
|
22
|
-
get: function () {
|
|
23
|
-
return e[k];
|
|
24
|
-
}
|
|
22
|
+
get: function () { return e[k]; }
|
|
25
23
|
});
|
|
26
24
|
}
|
|
27
25
|
});
|
|
28
26
|
}
|
|
29
|
-
n[
|
|
27
|
+
n["default"] = e;
|
|
30
28
|
return Object.freeze(n);
|
|
31
29
|
}
|
|
32
30
|
|
|
@@ -230,7 +228,10 @@ function detach(parent, child, type) {
|
|
|
230
228
|
target,
|
|
231
229
|
key
|
|
232
230
|
} = resolve(parent, type);
|
|
233
|
-
|
|
231
|
+
const previous = child.__r3f.previousAttach; // When the previous value was undefined, it means the value was never set to begin with
|
|
232
|
+
|
|
233
|
+
if (previous === undefined) delete target[key]; // Otherwise set the previous value
|
|
234
|
+
else target[key] = previous;
|
|
234
235
|
} else (_child$__r3f = child.__r3f) == null ? void 0 : _child$__r3f.previousAttach == null ? void 0 : _child$__r3f.previousAttach(parent, child);
|
|
235
236
|
|
|
236
237
|
(_child$__r3f2 = child.__r3f) == null ? true : delete _child$__r3f2.previousAttach;
|
|
@@ -344,35 +345,35 @@ function applyProps$1(instance, data) {
|
|
|
344
345
|
localState.eventCount = Object.keys(localState.handlers).length;
|
|
345
346
|
} // Special treatment for objects with support for set/copy, and layers
|
|
346
347
|
else if (targetProp && targetProp.set && (targetProp.copy || targetProp instanceof THREE__namespace.Layers)) {
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
363
|
-
|
|
364
|
-
const supportsColorManagement = THREE__namespace.ColorManagement;
|
|
365
|
-
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
366
|
-
} // Else, just overwrite the value
|
|
367
|
-
|
|
368
|
-
} else {
|
|
369
|
-
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
348
|
+
// If value is an array
|
|
349
|
+
if (Array.isArray(value)) {
|
|
350
|
+
if (targetProp.fromArray) targetProp.fromArray(value);else targetProp.set(...value);
|
|
351
|
+
} // Test again target.copy(class) next ...
|
|
352
|
+
else if (targetProp.copy && value && value.constructor && targetProp.constructor.name === value.constructor.name) {
|
|
353
|
+
targetProp.copy(value);
|
|
354
|
+
} // If nothing else fits, just set the single value, ignore undefined
|
|
355
|
+
// https://github.com/pmndrs/react-three-fiber/issues/274
|
|
356
|
+
else if (value !== undefined) {
|
|
357
|
+
const isColor = targetProp instanceof THREE__namespace.Color; // Allow setting array scalars
|
|
358
|
+
|
|
359
|
+
if (!isColor && targetProp.setScalar) targetProp.setScalar(value); // Layers have no copy function, we must therefore copy the mask property
|
|
360
|
+
else if (targetProp instanceof THREE__namespace.Layers && value instanceof THREE__namespace.Layers) targetProp.mask = value.mask; // Otherwise just set ...
|
|
361
|
+
else targetProp.set(value); // For versions of three which don't support THREE.ColorManagement,
|
|
362
|
+
// Auto-convert sRGB colors
|
|
370
363
|
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
371
364
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
365
|
+
const supportsColorManagement = THREE__namespace.ColorManagement;
|
|
366
|
+
if (!supportsColorManagement && !rootState.linear && isColor) targetProp.convertSRGBToLinear();
|
|
367
|
+
} // Else, just overwrite the value
|
|
368
|
+
|
|
369
|
+
} else {
|
|
370
|
+
currentInstance[key] = value; // Auto-convert sRGB textures, for now ...
|
|
371
|
+
// https://github.com/pmndrs/react-three-fiber/issues/344
|
|
372
|
+
|
|
373
|
+
if (!rootState.linear && currentInstance[key] instanceof THREE__namespace.Texture) {
|
|
374
|
+
currentInstance[key].encoding = THREE__namespace.sRGBEncoding;
|
|
375
375
|
}
|
|
376
|
+
}
|
|
376
377
|
|
|
377
378
|
invalidateInstance(instance);
|
|
378
379
|
});
|
|
@@ -872,7 +873,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
872
873
|
const target = catalogue[name];
|
|
873
874
|
|
|
874
875
|
if (!target) {
|
|
875
|
-
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://
|
|
876
|
+
throw `${name} is not part of the THREE namespace! Did you forget to extend? See: https://docs.pmnd.rs/react-three-fiber/api/objects#using-3rd-party-objects-declaratively`;
|
|
876
877
|
} // Throw if an object or literal was passed for args
|
|
877
878
|
|
|
878
879
|
|
|
@@ -1056,7 +1057,7 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1056
1057
|
});
|
|
1057
1058
|
}
|
|
1058
1059
|
|
|
1059
|
-
const reconciler = Reconciler__default[
|
|
1060
|
+
const reconciler = Reconciler__default["default"]({
|
|
1060
1061
|
createInstance,
|
|
1061
1062
|
removeChild,
|
|
1062
1063
|
appendChild,
|
|
@@ -1141,7 +1142,6 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1141
1142
|
shouldSetTextContent: () => false,
|
|
1142
1143
|
clearContainer: () => false,
|
|
1143
1144
|
detachDeletedInstance: () => {},
|
|
1144
|
-
createTextInstance: () => {},
|
|
1145
1145
|
|
|
1146
1146
|
hideInstance(instance) {
|
|
1147
1147
|
var _instance$__r3f5;
|
|
@@ -1169,10 +1169,11 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1169
1169
|
invalidateInstance(instance);
|
|
1170
1170
|
},
|
|
1171
1171
|
|
|
1172
|
+
createTextInstance: () => {},
|
|
1172
1173
|
hideTextInstance: () => {
|
|
1173
1174
|
throw new Error('Text is not allowed in the R3F tree.');
|
|
1174
1175
|
},
|
|
1175
|
-
|
|
1176
|
+
unhideTextInstance: () => {},
|
|
1176
1177
|
getCurrentEventPriority: () => getEventPriority ? getEventPriority() : constants.DefaultEventPriority,
|
|
1177
1178
|
// @ts-ignore
|
|
1178
1179
|
now: typeof performance !== 'undefined' && is.fun(performance.now) ? performance.now : is.fun(Date.now) ? Date.now : undefined,
|
|
@@ -1189,12 +1190,12 @@ function createRenderer(roots, getEventPriority) {
|
|
|
1189
1190
|
};
|
|
1190
1191
|
}
|
|
1191
1192
|
|
|
1192
|
-
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', '
|
|
1193
|
+
const privateKeys = ['set', 'get', 'setSize', 'setFrameloop', 'setDpr', 'events', 'invalidate', 'advance', 'size', 'viewport'];
|
|
1193
1194
|
const isRenderer = def => !!(def != null && def.render);
|
|
1194
1195
|
const context = /*#__PURE__*/React__namespace.createContext(null);
|
|
1195
1196
|
|
|
1196
1197
|
const createStore = (invalidate, advance) => {
|
|
1197
|
-
const rootState = create__default[
|
|
1198
|
+
const rootState = create__default["default"]((set, get) => {
|
|
1198
1199
|
const position = new THREE__namespace.Vector3();
|
|
1199
1200
|
const defaultTarget = new THREE__namespace.Vector3();
|
|
1200
1201
|
const tempTarget = new THREE__namespace.Vector3();
|
|
@@ -1652,6 +1653,13 @@ const createRendererInstance = (gl, canvas) => {
|
|
|
1652
1653
|
});
|
|
1653
1654
|
};
|
|
1654
1655
|
|
|
1656
|
+
const logRecoverableError = typeof reportError === 'function' ? // In modern browsers, reportError will dispatch an error event,
|
|
1657
|
+
// emulating an uncaught JavaScript error.
|
|
1658
|
+
reportError : error => {
|
|
1659
|
+
// In older browsers and test environments, fallback to console.error.
|
|
1660
|
+
console.error(error);
|
|
1661
|
+
};
|
|
1662
|
+
|
|
1655
1663
|
function createRoot(canvas) {
|
|
1656
1664
|
// Check against mistaken use of createRoot
|
|
1657
1665
|
let prevRoot = roots.get(canvas);
|
|
@@ -1661,7 +1669,7 @@ function createRoot(canvas) {
|
|
|
1661
1669
|
|
|
1662
1670
|
const store = prevStore || createStore(invalidate, advance); // Create renderer
|
|
1663
1671
|
|
|
1664
|
-
const fiber = prevFiber || reconciler.createContainer(store, constants.ConcurrentRoot, false, null); // Map it
|
|
1672
|
+
const fiber = prevFiber || reconciler.createContainer(store, constants.ConcurrentRoot, null, false, null, null, logRecoverableError, null); // Map it
|
|
1665
1673
|
|
|
1666
1674
|
if (!prevRoot) roots.set(canvas, {
|
|
1667
1675
|
fiber,
|
|
@@ -1942,29 +1950,28 @@ function Portal({
|
|
|
1942
1950
|
const previousRoot = useStore();
|
|
1943
1951
|
const [raycaster] = React__namespace.useState(() => new THREE__namespace.Raycaster());
|
|
1944
1952
|
const [pointer] = React__namespace.useState(() => new THREE__namespace.Vector2());
|
|
1945
|
-
const inject = React__namespace.useCallback((
|
|
1946
|
-
const intersect = { ...
|
|
1947
|
-
};
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
}
|
|
1958
|
-
}
|
|
1959
|
-
|
|
1953
|
+
const inject = React__namespace.useCallback((rootState, injectState) => {
|
|
1954
|
+
const intersect = { ...rootState
|
|
1955
|
+
}; // all prev state props
|
|
1956
|
+
// Only the fields of "rootState" that do not differ from injectState
|
|
1957
|
+
// Some props should be off-limits
|
|
1958
|
+
// Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1959
|
+
|
|
1960
|
+
Object.keys(rootState).forEach(key => {
|
|
1961
|
+
if ( // Some props should be off-limits
|
|
1962
|
+
privateKeys.includes(key) || // Otherwise filter out the props that are different and let the inject layer take precedence
|
|
1963
|
+
rootState[key] !== injectState[key]) {
|
|
1964
|
+
delete intersect[key];
|
|
1965
|
+
}
|
|
1966
|
+
});
|
|
1960
1967
|
let viewport = undefined;
|
|
1961
1968
|
|
|
1962
1969
|
if (injectState && size) {
|
|
1963
1970
|
const camera = injectState.camera; // Calculate the override viewport, if present
|
|
1964
1971
|
|
|
1965
|
-
viewport =
|
|
1972
|
+
viewport = rootState.viewport.getCurrentViewport(camera, new THREE__namespace.Vector3(), size); // Update the portal camera, if it differs from the previous layer
|
|
1966
1973
|
|
|
1967
|
-
if (camera !==
|
|
1974
|
+
if (camera !== rootState.camera) updateCamera(camera, size);
|
|
1968
1975
|
}
|
|
1969
1976
|
|
|
1970
1977
|
return { // The intersect consists of the previous root state
|
|
@@ -1977,14 +1984,14 @@ function Portal({
|
|
|
1977
1984
|
// Their previous root is the layer before it
|
|
1978
1985
|
previousRoot,
|
|
1979
1986
|
// Events, size and viewport can be overridden by the inject layer
|
|
1980
|
-
events: { ...
|
|
1987
|
+
events: { ...rootState.events,
|
|
1981
1988
|
...(injectState == null ? void 0 : injectState.events),
|
|
1982
1989
|
...events
|
|
1983
1990
|
},
|
|
1984
|
-
size: { ...
|
|
1991
|
+
size: { ...rootState.size,
|
|
1985
1992
|
...size
|
|
1986
1993
|
},
|
|
1987
|
-
viewport: { ...
|
|
1994
|
+
viewport: { ...rootState.viewport,
|
|
1988
1995
|
...viewport
|
|
1989
1996
|
},
|
|
1990
1997
|
...rest
|
|
@@ -1992,9 +1999,20 @@ function Portal({
|
|
|
1992
1999
|
}, [state]);
|
|
1993
2000
|
const [usePortalStore] = React__namespace.useState(() => {
|
|
1994
2001
|
// Create a mirrored store, based on the previous root with a few overrides ...
|
|
1995
|
-
new THREE__namespace.Vector3();
|
|
1996
2002
|
const previousState = previousRoot.getState();
|
|
1997
|
-
const store = create__default[
|
|
2003
|
+
const store = create__default["default"]((set, get) => ({ ...previousState,
|
|
2004
|
+
scene: container,
|
|
2005
|
+
raycaster,
|
|
2006
|
+
pointer,
|
|
2007
|
+
mouse: pointer,
|
|
2008
|
+
previousRoot,
|
|
2009
|
+
events: { ...previousState.events,
|
|
2010
|
+
...events
|
|
2011
|
+
},
|
|
2012
|
+
size: { ...previousState.size,
|
|
2013
|
+
...size
|
|
2014
|
+
},
|
|
2015
|
+
...rest,
|
|
1998
2016
|
// Set and get refer to this root-state
|
|
1999
2017
|
set,
|
|
2000
2018
|
get,
|
|
@@ -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-cf0e5bff.cjs.dev.js');
|
|
6
6
|
var _extends = require('@babel/runtime/helpers/extends');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var THREE = require('three');
|
|
@@ -25,14 +25,12 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
26
|
Object.defineProperty(n, k, d.get ? d : {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () {
|
|
29
|
-
return e[k];
|
|
30
|
-
}
|
|
28
|
+
get: function () { return e[k]; }
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
31
|
});
|
|
34
32
|
}
|
|
35
|
-
n[
|
|
33
|
+
n["default"] = e;
|
|
36
34
|
return Object.freeze(n);
|
|
37
35
|
}
|
|
38
36
|
|
|
@@ -151,7 +149,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
151
149
|
const [containerRef, {
|
|
152
150
|
width,
|
|
153
151
|
height
|
|
154
|
-
}] = useMeasure__default[
|
|
152
|
+
}] = useMeasure__default["default"]({
|
|
155
153
|
scroll: true,
|
|
156
154
|
debounce: {
|
|
157
155
|
scroll: 50,
|
|
@@ -213,7 +211,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
213
211
|
if (canvas) return () => index.unmountComponentAtNode(canvas);
|
|
214
212
|
}, [canvas]);
|
|
215
213
|
return /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
216
|
-
ref: mergeRefs__default[
|
|
214
|
+
ref: mergeRefs__default["default"]([meshRef, containerRef]),
|
|
217
215
|
style: {
|
|
218
216
|
position: 'relative',
|
|
219
217
|
width: '100%',
|
|
@@ -222,7 +220,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
222
220
|
...style
|
|
223
221
|
}
|
|
224
222
|
}, props), /*#__PURE__*/React__namespace.createElement("canvas", {
|
|
225
|
-
ref: mergeRefs__default[
|
|
223
|
+
ref: mergeRefs__default["default"]([canvasRef, forwardedRef]),
|
|
226
224
|
style: {
|
|
227
225
|
display: 'block'
|
|
228
226
|
}
|
|
@@ -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-5844e9ba.cjs.prod.js');
|
|
6
6
|
var _extends = require('@babel/runtime/helpers/extends');
|
|
7
7
|
var React = require('react');
|
|
8
8
|
var THREE = require('three');
|
|
@@ -25,14 +25,12 @@ function _interopNamespace(e) {
|
|
|
25
25
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
26
26
|
Object.defineProperty(n, k, d.get ? d : {
|
|
27
27
|
enumerable: true,
|
|
28
|
-
get: function () {
|
|
29
|
-
return e[k];
|
|
30
|
-
}
|
|
28
|
+
get: function () { return e[k]; }
|
|
31
29
|
});
|
|
32
30
|
}
|
|
33
31
|
});
|
|
34
32
|
}
|
|
35
|
-
n[
|
|
33
|
+
n["default"] = e;
|
|
36
34
|
return Object.freeze(n);
|
|
37
35
|
}
|
|
38
36
|
|
|
@@ -151,7 +149,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
151
149
|
const [containerRef, {
|
|
152
150
|
width,
|
|
153
151
|
height
|
|
154
|
-
}] = useMeasure__default[
|
|
152
|
+
}] = useMeasure__default["default"]({
|
|
155
153
|
scroll: true,
|
|
156
154
|
debounce: {
|
|
157
155
|
scroll: 50,
|
|
@@ -213,7 +211,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
213
211
|
if (canvas) return () => index.unmountComponentAtNode(canvas);
|
|
214
212
|
}, [canvas]);
|
|
215
213
|
return /*#__PURE__*/React__namespace.createElement("div", _extends({
|
|
216
|
-
ref: mergeRefs__default[
|
|
214
|
+
ref: mergeRefs__default["default"]([meshRef, containerRef]),
|
|
217
215
|
style: {
|
|
218
216
|
position: 'relative',
|
|
219
217
|
width: '100%',
|
|
@@ -222,7 +220,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
|
|
|
222
220
|
...style
|
|
223
221
|
}
|
|
224
222
|
}, props), /*#__PURE__*/React__namespace.createElement("canvas", {
|
|
225
|
-
ref: mergeRefs__default[
|
|
223
|
+
ref: mergeRefs__default["default"]([canvasRef, forwardedRef]),
|
|
226
224
|
style: {
|
|
227
225
|
display: 'block'
|
|
228
226
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, E as ErrorBoundary, B as Block, b as useIsomorphicLayoutEffect, d as unmountComponentAtNode } from './index-
|
|
2
|
-
export { t as ReactThreeFiber, s as _roots, q as act, n as addAfterEffect, m as addEffect, o as addTail, l as advance, i as applyProps, f as context, g as createPortal, a as createRoot, j as dispose, e as extend, p as getRootState, k as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, x as useFrame, y as useGraph, z as useLoader, v as useStore, w as useThree } from './index-
|
|
1
|
+
import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, E as ErrorBoundary, B as Block, b as useIsomorphicLayoutEffect, d as unmountComponentAtNode } from './index-c0771a1d.esm.js';
|
|
2
|
+
export { t as ReactThreeFiber, s as _roots, q as act, n as addAfterEffect, m as addEffect, o as addTail, l as advance, i as applyProps, f as context, g as createPortal, a as createRoot, j as dispose, e as extend, p as getRootState, k as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, x as useFrame, y as useGraph, z as useLoader, v as useStore, w as useThree } from './index-c0771a1d.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';
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var THREE = require('three');
|
|
6
6
|
var expoAsset = require('expo-asset');
|
|
7
|
-
var index = require('../../dist/index-
|
|
7
|
+
var index = require('../../dist/index-cf0e5bff.cjs.dev.js');
|
|
8
8
|
var _extends = require('@babel/runtime/helpers/extends');
|
|
9
9
|
var React = require('react');
|
|
10
10
|
var mergeRefs = require('react-merge-refs');
|
|
@@ -28,14 +28,12 @@ function _interopNamespace(e) {
|
|
|
28
28
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
29
29
|
Object.defineProperty(n, k, d.get ? d : {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () {
|
|
32
|
-
return e[k];
|
|
33
|
-
}
|
|
31
|
+
get: function () { return e[k]; }
|
|
34
32
|
});
|
|
35
33
|
}
|
|
36
34
|
});
|
|
37
35
|
}
|
|
38
|
-
n[
|
|
36
|
+
n["default"] = e;
|
|
39
37
|
return Object.freeze(n);
|
|
40
38
|
}
|
|
41
39
|
|
|
@@ -100,7 +98,7 @@ function createTouchEvents(store) {
|
|
|
100
98
|
events
|
|
101
99
|
} = store.getState();
|
|
102
100
|
events.disconnect == null ? void 0 : events.disconnect();
|
|
103
|
-
const connected = new Pressability__default[
|
|
101
|
+
const connected = new Pressability__default["default"](events == null ? void 0 : events.handlers);
|
|
104
102
|
set(state => ({
|
|
105
103
|
events: { ...state.events,
|
|
106
104
|
connected
|
|
@@ -249,7 +247,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(({
|
|
|
249
247
|
}
|
|
250
248
|
}, [canvas]);
|
|
251
249
|
return /*#__PURE__*/React__namespace.createElement(reactNative.View, _extends({}, props, {
|
|
252
|
-
ref: mergeRefs__default[
|
|
250
|
+
ref: mergeRefs__default["default"]([viewRef, forwardedRef]),
|
|
253
251
|
onLayout: onLayout,
|
|
254
252
|
style: {
|
|
255
253
|
flex: 1,
|
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var THREE = require('three');
|
|
6
6
|
var expoAsset = require('expo-asset');
|
|
7
|
-
var index = require('../../dist/index-
|
|
7
|
+
var index = require('../../dist/index-5844e9ba.cjs.prod.js');
|
|
8
8
|
var _extends = require('@babel/runtime/helpers/extends');
|
|
9
9
|
var React = require('react');
|
|
10
10
|
var mergeRefs = require('react-merge-refs');
|
|
@@ -28,14 +28,12 @@ function _interopNamespace(e) {
|
|
|
28
28
|
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
29
29
|
Object.defineProperty(n, k, d.get ? d : {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () {
|
|
32
|
-
return e[k];
|
|
33
|
-
}
|
|
31
|
+
get: function () { return e[k]; }
|
|
34
32
|
});
|
|
35
33
|
}
|
|
36
34
|
});
|
|
37
35
|
}
|
|
38
|
-
n[
|
|
36
|
+
n["default"] = e;
|
|
39
37
|
return Object.freeze(n);
|
|
40
38
|
}
|
|
41
39
|
|
|
@@ -100,7 +98,7 @@ function createTouchEvents(store) {
|
|
|
100
98
|
events
|
|
101
99
|
} = store.getState();
|
|
102
100
|
events.disconnect == null ? void 0 : events.disconnect();
|
|
103
|
-
const connected = new Pressability__default[
|
|
101
|
+
const connected = new Pressability__default["default"](events == null ? void 0 : events.handlers);
|
|
104
102
|
set(state => ({
|
|
105
103
|
events: { ...state.events,
|
|
106
104
|
connected
|
|
@@ -249,7 +247,7 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(({
|
|
|
249
247
|
}
|
|
250
248
|
}, [canvas]);
|
|
251
249
|
return /*#__PURE__*/React__namespace.createElement(reactNative.View, _extends({}, props, {
|
|
252
|
-
ref: mergeRefs__default[
|
|
250
|
+
ref: mergeRefs__default["default"]([viewRef, forwardedRef]),
|
|
253
251
|
onLayout: onLayout,
|
|
254
252
|
style: {
|
|
255
253
|
flex: 1,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { Asset } from 'expo-asset';
|
|
3
|
-
import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, E as ErrorBoundary, B as Block, d as unmountComponentAtNode } from '../../dist/index-
|
|
4
|
-
export { t as ReactThreeFiber, s as _roots, q as act, n as addAfterEffect, m as addEffect, o as addTail, l as advance, i as applyProps, f as context, g as createPortal, a as createRoot, j as dispose, e as extend, p as getRootState, k as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, x as useFrame, y as useGraph, z as useLoader, v as useStore, w as useThree } from '../../dist/index-
|
|
3
|
+
import { c as createEvents, e as extend, u as useMutableCallback, a as createRoot, E as ErrorBoundary, B as Block, d as unmountComponentAtNode } from '../../dist/index-c0771a1d.esm.js';
|
|
4
|
+
export { t as ReactThreeFiber, s as _roots, q as act, n as addAfterEffect, m as addEffect, o as addTail, l as advance, i as applyProps, f as context, g as createPortal, a as createRoot, j as dispose, e as extend, p as getRootState, k as invalidate, h as reconciler, r as render, d as unmountComponentAtNode, x as useFrame, y as useGraph, z as useLoader, v as useStore, w as useThree } from '../../dist/index-c0771a1d.esm.js';
|
|
5
5
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import mergeRefs from 'react-merge-refs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@react-three/fiber",
|
|
3
|
-
"version": "8.0.
|
|
3
|
+
"version": "8.0.14",
|
|
4
4
|
"description": "A React renderer for Threejs",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@babel/runtime": "^7.17.8",
|
|
46
|
-
"@types/react-reconciler": "^0.26.
|
|
46
|
+
"@types/react-reconciler": "^0.26.6",
|
|
47
47
|
"react-merge-refs": "^1.1.0",
|
|
48
48
|
"react-reconciler": "^0.27.0",
|
|
49
49
|
"react-use-measure": "^2.1.1",
|