@react-three/fiber 9.3.0 → 9.4.0
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 +6 -0
- package/dist/{events-d0a20a9c.cjs.prod.js → events-3afec6fc.cjs.prod.js} +37 -10
- package/dist/{events-d0449b76.cjs.dev.js → events-6ab58ae5.cjs.dev.js} +37 -10
- package/dist/{events-e3cb66e2.esm.js → events-f8cd670d.esm.js} +37 -10
- package/dist/react-three-fiber.cjs.dev.js +1 -1
- package/dist/react-three-fiber.cjs.prod.js +1 -1
- package/dist/react-three-fiber.esm.js +2 -2
- package/native/dist/react-three-fiber-native.cjs.dev.js +1 -1
- package/native/dist/react-three-fiber-native.cjs.prod.js +1 -1
- package/native/dist/react-three-fiber-native.esm.js +2 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -241,24 +241,46 @@ function prepare(target, root, type, props) {
|
|
|
241
241
|
return instance;
|
|
242
242
|
}
|
|
243
243
|
function resolve(root, key) {
|
|
244
|
-
let target = root[key];
|
|
245
244
|
if (!key.includes('-')) return {
|
|
246
245
|
root,
|
|
247
246
|
key,
|
|
248
|
-
target
|
|
247
|
+
target: root[key]
|
|
249
248
|
};
|
|
250
249
|
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
250
|
+
// First try the entire key as a single property (e.g., 'foo-bar')
|
|
251
|
+
if (key in root) {
|
|
252
|
+
return {
|
|
253
|
+
root,
|
|
254
|
+
key,
|
|
255
|
+
target: root[key]
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Try piercing (e.g., 'material-color' -> material.color)
|
|
260
|
+
let target = root;
|
|
261
|
+
const parts = key.split('-');
|
|
262
|
+
for (const part of parts) {
|
|
263
|
+
if (typeof target !== 'object' || target === null) {
|
|
264
|
+
if (target !== undefined) {
|
|
265
|
+
// Property exists but has unexpected shape
|
|
266
|
+
const remaining = parts.slice(parts.indexOf(part)).join('-');
|
|
267
|
+
return {
|
|
268
|
+
root: target,
|
|
269
|
+
key: remaining,
|
|
270
|
+
target: undefined
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Property doesn't exist - fallback to original key
|
|
274
|
+
return {
|
|
275
|
+
root,
|
|
276
|
+
key,
|
|
277
|
+
target: undefined
|
|
278
|
+
};
|
|
279
|
+
}
|
|
255
280
|
key = part;
|
|
256
281
|
root = target;
|
|
257
|
-
target =
|
|
282
|
+
target = target[key];
|
|
258
283
|
}
|
|
259
|
-
|
|
260
|
-
// TODO: change key to 'foo-bar' if target is undefined?
|
|
261
|
-
|
|
262
284
|
return {
|
|
263
285
|
root,
|
|
264
286
|
key,
|
|
@@ -401,6 +423,11 @@ function applyProps(object, props) {
|
|
|
401
423
|
target
|
|
402
424
|
} = resolve(object, prop);
|
|
403
425
|
|
|
426
|
+
// Throw an error if we attempted to set a pierced prop to a non-object
|
|
427
|
+
if (target === undefined && (typeof root !== 'object' || root === null)) {
|
|
428
|
+
throw Error(`R3F: Cannot set "${prop}". Ensure it is an object before setting "${key}".`);
|
|
429
|
+
}
|
|
430
|
+
|
|
404
431
|
// Layers must be written to the mask property
|
|
405
432
|
if (target instanceof THREE__namespace.Layers && value instanceof THREE__namespace.Layers) {
|
|
406
433
|
target.mask = value.mask;
|
|
@@ -241,24 +241,46 @@ function prepare(target, root, type, props) {
|
|
|
241
241
|
return instance;
|
|
242
242
|
}
|
|
243
243
|
function resolve(root, key) {
|
|
244
|
-
let target = root[key];
|
|
245
244
|
if (!key.includes('-')) return {
|
|
246
245
|
root,
|
|
247
246
|
key,
|
|
248
|
-
target
|
|
247
|
+
target: root[key]
|
|
249
248
|
};
|
|
250
249
|
|
|
251
|
-
//
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
250
|
+
// First try the entire key as a single property (e.g., 'foo-bar')
|
|
251
|
+
if (key in root) {
|
|
252
|
+
return {
|
|
253
|
+
root,
|
|
254
|
+
key,
|
|
255
|
+
target: root[key]
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
// Try piercing (e.g., 'material-color' -> material.color)
|
|
260
|
+
let target = root;
|
|
261
|
+
const parts = key.split('-');
|
|
262
|
+
for (const part of parts) {
|
|
263
|
+
if (typeof target !== 'object' || target === null) {
|
|
264
|
+
if (target !== undefined) {
|
|
265
|
+
// Property exists but has unexpected shape
|
|
266
|
+
const remaining = parts.slice(parts.indexOf(part)).join('-');
|
|
267
|
+
return {
|
|
268
|
+
root: target,
|
|
269
|
+
key: remaining,
|
|
270
|
+
target: undefined
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
// Property doesn't exist - fallback to original key
|
|
274
|
+
return {
|
|
275
|
+
root,
|
|
276
|
+
key,
|
|
277
|
+
target: undefined
|
|
278
|
+
};
|
|
279
|
+
}
|
|
255
280
|
key = part;
|
|
256
281
|
root = target;
|
|
257
|
-
target =
|
|
282
|
+
target = target[key];
|
|
258
283
|
}
|
|
259
|
-
|
|
260
|
-
// TODO: change key to 'foo-bar' if target is undefined?
|
|
261
|
-
|
|
262
284
|
return {
|
|
263
285
|
root,
|
|
264
286
|
key,
|
|
@@ -401,6 +423,11 @@ function applyProps(object, props) {
|
|
|
401
423
|
target
|
|
402
424
|
} = resolve(object, prop);
|
|
403
425
|
|
|
426
|
+
// Throw an error if we attempted to set a pierced prop to a non-object
|
|
427
|
+
if (target === undefined && (typeof root !== 'object' || root === null)) {
|
|
428
|
+
throw Error(`R3F: Cannot set "${prop}". Ensure it is an object before setting "${key}".`);
|
|
429
|
+
}
|
|
430
|
+
|
|
404
431
|
// Layers must be written to the mask property
|
|
405
432
|
if (target instanceof THREE__namespace.Layers && value instanceof THREE__namespace.Layers) {
|
|
406
433
|
target.mask = value.mask;
|
|
@@ -215,24 +215,46 @@ function prepare(target, root, type, props) {
|
|
|
215
215
|
return instance;
|
|
216
216
|
}
|
|
217
217
|
function resolve(root, key) {
|
|
218
|
-
let target = root[key];
|
|
219
218
|
if (!key.includes('-')) return {
|
|
220
219
|
root,
|
|
221
220
|
key,
|
|
222
|
-
target
|
|
221
|
+
target: root[key]
|
|
223
222
|
};
|
|
224
223
|
|
|
225
|
-
//
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
224
|
+
// First try the entire key as a single property (e.g., 'foo-bar')
|
|
225
|
+
if (key in root) {
|
|
226
|
+
return {
|
|
227
|
+
root,
|
|
228
|
+
key,
|
|
229
|
+
target: root[key]
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Try piercing (e.g., 'material-color' -> material.color)
|
|
234
|
+
let target = root;
|
|
235
|
+
const parts = key.split('-');
|
|
236
|
+
for (const part of parts) {
|
|
237
|
+
if (typeof target !== 'object' || target === null) {
|
|
238
|
+
if (target !== undefined) {
|
|
239
|
+
// Property exists but has unexpected shape
|
|
240
|
+
const remaining = parts.slice(parts.indexOf(part)).join('-');
|
|
241
|
+
return {
|
|
242
|
+
root: target,
|
|
243
|
+
key: remaining,
|
|
244
|
+
target: undefined
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
// Property doesn't exist - fallback to original key
|
|
248
|
+
return {
|
|
249
|
+
root,
|
|
250
|
+
key,
|
|
251
|
+
target: undefined
|
|
252
|
+
};
|
|
253
|
+
}
|
|
229
254
|
key = part;
|
|
230
255
|
root = target;
|
|
231
|
-
target =
|
|
256
|
+
target = target[key];
|
|
232
257
|
}
|
|
233
|
-
|
|
234
|
-
// TODO: change key to 'foo-bar' if target is undefined?
|
|
235
|
-
|
|
236
258
|
return {
|
|
237
259
|
root,
|
|
238
260
|
key,
|
|
@@ -375,6 +397,11 @@ function applyProps(object, props) {
|
|
|
375
397
|
target
|
|
376
398
|
} = resolve(object, prop);
|
|
377
399
|
|
|
400
|
+
// Throw an error if we attempted to set a pierced prop to a non-object
|
|
401
|
+
if (target === undefined && (typeof root !== 'object' || root === null)) {
|
|
402
|
+
throw Error(`R3F: Cannot set "${prop}". Ensure it is an object before setting "${key}".`);
|
|
403
|
+
}
|
|
404
|
+
|
|
378
405
|
// Layers must be written to the mask property
|
|
379
406
|
if (target instanceof THREE.Layers && value instanceof THREE.Layers) {
|
|
380
407
|
target.mask = value.mask;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var events = require('./events-
|
|
5
|
+
var events = require('./events-6ab58ae5.cjs.dev.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var THREE = require('three');
|
|
8
8
|
var useMeasure = require('react-use-measure');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var events = require('./events-
|
|
5
|
+
var events = require('./events-3afec6fc.cjs.prod.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var THREE = require('three');
|
|
8
8
|
var useMeasure = require('react-use-measure');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as extend, u as useBridge, a as useMutableCallback, b as useIsomorphicLayoutEffect, c as createRoot, i as isRef, E as ErrorBoundary, B as Block, d as unmountComponentAtNode, f as createPointerEvents } from './events-
|
|
2
|
-
export { t as ReactThreeFiber, _ as _roots, x as act, k as addAfterEffect, j as addEffect, l as addTail, n as advance, s as applyProps, y as buildGraph, q as context, g as createEvents, o as createPortal, c as createRoot, w as dispose, f as events, e as extend, h as flushGlobalEffects, p as flushSync, v as getRootState, m as invalidate, r as reconciler, d as unmountComponentAtNode, D as useFrame, F as useGraph, z as useInstanceHandle, G as useLoader, A as useStore, C as useThree } from './events-
|
|
1
|
+
import { e as extend, u as useBridge, a as useMutableCallback, b as useIsomorphicLayoutEffect, c as createRoot, i as isRef, E as ErrorBoundary, B as Block, d as unmountComponentAtNode, f as createPointerEvents } from './events-f8cd670d.esm.js';
|
|
2
|
+
export { t as ReactThreeFiber, _ as _roots, x as act, k as addAfterEffect, j as addEffect, l as addTail, n as advance, s as applyProps, y as buildGraph, q as context, g as createEvents, o as createPortal, c as createRoot, w as dispose, f as events, e as extend, h as flushGlobalEffects, p as flushSync, v as getRootState, m as invalidate, r as reconciler, d as unmountComponentAtNode, D as useFrame, F as useGraph, z as useInstanceHandle, G as useLoader, A as useStore, C as useThree } from './events-f8cd670d.esm.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import useMeasure from 'react-use-measure';
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var events = require('../../dist/events-
|
|
5
|
+
var events = require('../../dist/events-6ab58ae5.cjs.dev.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var THREE = require('three');
|
|
8
8
|
var reactNative = require('react-native');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var events = require('../../dist/events-
|
|
5
|
+
var events = require('../../dist/events-3afec6fc.cjs.prod.js');
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var THREE = require('three');
|
|
8
8
|
var reactNative = require('react-native');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { e as extend, u as useBridge, a as useMutableCallback, c as createRoot, b as useIsomorphicLayoutEffect, E as ErrorBoundary, B as Block, d as unmountComponentAtNode, f as createPointerEvents, g as createEvents } from '../../dist/events-
|
|
2
|
-
export { t as ReactThreeFiber, _ as _roots, x as act, k as addAfterEffect, j as addEffect, l as addTail, n as advance, s as applyProps, y as buildGraph, q as context, g as createEvents, o as createPortal, c as createRoot, w as dispose, e as extend, h as flushGlobalEffects, p as flushSync, v as getRootState, m as invalidate, r as reconciler, d as unmountComponentAtNode, D as useFrame, F as useGraph, z as useInstanceHandle, G as useLoader, A as useStore, C as useThree } from '../../dist/events-
|
|
1
|
+
import { e as extend, u as useBridge, a as useMutableCallback, c as createRoot, b as useIsomorphicLayoutEffect, E as ErrorBoundary, B as Block, d as unmountComponentAtNode, f as createPointerEvents, g as createEvents } from '../../dist/events-f8cd670d.esm.js';
|
|
2
|
+
export { t as ReactThreeFiber, _ as _roots, x as act, k as addAfterEffect, j as addEffect, l as addTail, n as advance, s as applyProps, y as buildGraph, q as context, g as createEvents, o as createPortal, c as createRoot, w as dispose, e as extend, h as flushGlobalEffects, p as flushSync, v as getRootState, m as invalidate, r as reconciler, d as unmountComponentAtNode, D as useFrame, F as useGraph, z as useInstanceHandle, G as useLoader, A as useStore, C as useThree } from '../../dist/events-f8cd670d.esm.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import * as THREE from 'three';
|
|
5
5
|
import { PanResponder, PixelRatio, StyleSheet, View, Platform, Image, NativeModules } from 'react-native';
|