@react-three/drei 9.80.2 → 9.80.4
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/core/DeviceOrientationControls.cjs.js +1 -1
- package/core/DeviceOrientationControls.js +1 -1
- package/core/Example.d.ts +1 -1
- package/core/PointerLockControls.cjs.js +1 -1
- package/core/PointerLockControls.js +1 -1
- package/core/useAnimations.cjs.js +1 -1
- package/core/useAnimations.js +8 -7
- package/index.cjs.js +1 -1
- package/package.json +1 -1
- package/react-three-drei-0.0.0-semantic-release.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),i=o(r);const l=i.forwardRef(((e,r)=>{const{camera:u,onChange:o,makeDefault:l,...s}=e,a=t.useThree((e=>e.camera)),f=t.useThree((e=>e.invalidate)),d=t.useThree((e=>e.get)),v=t.useThree((e=>e.set)),b=u||a,
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=u(e),i=o(r);const l=i.forwardRef(((e,r)=>{const{camera:u,onChange:o,makeDefault:l,...s}=e,a=t.useThree((e=>e.camera)),f=t.useThree((e=>e.invalidate)),d=t.useThree((e=>e.get)),v=t.useThree((e=>e.set)),b=u||a,h=i.useMemo((()=>new n.DeviceOrientationControls(b)),[b]);return i.useEffect((()=>{const e=e=>{f(),o&&o(e)};return null==h||null==h.addEventListener||h.addEventListener("change",e),()=>null==h||null==h.removeEventListener?void 0:h.removeEventListener("change",e)}),[o,h,f]),t.useFrame((()=>null==h?void 0:h.update()),-1),i.useEffect((()=>{const e=h;return null==e||e.connect(),()=>null==e?void 0:e.dispose()}),[h]),i.useEffect((()=>{if(l){const e=d().controls;return v({controls:h}),()=>v({controls:e})}}),[l,h]),h?i.createElement("primitive",c.default({ref:r,object:h},s)):null}));exports.DeviceOrientationControls=l;
|
|
@@ -15,7 +15,7 @@ const DeviceOrientationControls = /*#__PURE__*/React.forwardRef((props, ref) =>
|
|
|
15
15
|
const get = useThree(state => state.get);
|
|
16
16
|
const set = useThree(state => state.set);
|
|
17
17
|
const explCamera = camera || defaultCamera;
|
|
18
|
-
const
|
|
18
|
+
const controls = React.useMemo(() => new DeviceOrientationControls$1(explCamera), [explCamera]);
|
|
19
19
|
React.useEffect(() => {
|
|
20
20
|
const callback = e => {
|
|
21
21
|
invalidate();
|
package/core/Example.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...d},f)=>{const{camera:h
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=o(e),i=c(r);const u=i.forwardRef((({domElement:e,selector:r,onChange:o,onLock:c,onUnlock:u,enabled:a=!0,makeDefault:l,...d},f)=>{const{camera:m,...h}=d,v=t.useThree((e=>e.setEvents)),E=t.useThree((e=>e.gl)),b=t.useThree((e=>e.camera)),p=t.useThree((e=>e.invalidate)),k=t.useThree((e=>e.events)),L=t.useThree((e=>e.get)),g=t.useThree((e=>e.set)),j=m||b,y=e||k.connected||E.domElement,O=i.useMemo((()=>new n.PointerLockControls(j)),[j]);return i.useEffect((()=>{if(a){O.connect(y);const e=L().events.compute;return v({compute(e,t){const r=t.size.width/2,n=t.size.height/2;t.pointer.set(r/t.size.width*2-1,-n/t.size.height*2+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),()=>{O.disconnect(),v({compute:e})}}}),[a,O]),i.useEffect((()=>{const e=e=>{p(),o&&o(e)};O.addEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u);const t=()=>O.lock(),n=r?Array.from(document.querySelectorAll(r)):[document];return n.forEach((e=>e&&e.addEventListener("click",t))),()=>{O.removeEventListener("change",e),c&&O.addEventListener("lock",c),u&&O.addEventListener("unlock",u),n.forEach((e=>e?e.removeEventListener("click",t):void 0))}}),[o,c,u,r,O,p]),i.useEffect((()=>{if(l){const e=L().controls;return g({controls:O}),()=>g({controls:e})}}),[l,O]),i.createElement("primitive",s.default({ref:f,object:O},h))}));exports.PointerLockControls=u;
|
|
@@ -26,7 +26,7 @@ const PointerLockControls = /*#__PURE__*/React.forwardRef(({
|
|
|
26
26
|
const set = useThree(state => state.set);
|
|
27
27
|
const explCamera = camera || defaultCamera;
|
|
28
28
|
const explDomElement = domElement || events.connected || gl.domElement;
|
|
29
|
-
const
|
|
29
|
+
const controls = React.useMemo(() => new PointerLockControls$1(explCamera), [explCamera]);
|
|
30
30
|
React.useEffect(() => {
|
|
31
31
|
if (enabled) {
|
|
32
32
|
controls.connect(explDomElement); // Force events to be centered while PLC is active
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var c=n(e);exports.useAnimations=function(e,n){const u=c.useRef(),[a]=c.useState((()=>n?n instanceof t.Object3D?{current:n}:n:u)),[o]=c.useState((()=>new t.AnimationMixer(void 0)));c.useLayoutEffect((()=>{o._root=a.current}),[o,n]);const i=c.useRef({}),[s]=c.useState((()=>{const t={};return e.forEach((e=>Object.defineProperty(t,e.name,{enumerable:!0,get(){if(a.current)return i.current[e.name]||(i.current[e.name]=o.clipAction(e,a.current))},configurable:!0}))),{ref:a,clips:e,actions:t,names:e.map((e=>e.name)),mixer:o}}));return r.useFrame(((e,t)=>o.update(t))),c.useEffect((()=>{const e=a.current;return()=>{i.current={},Object.values(s.actions).forEach((t=>{e&&o.uncacheAction(t,e)}))}}),[e]),c.useEffect((()=>()=>{o.stopAllAction()}),[o]),s};
|
package/core/useAnimations.js
CHANGED
|
@@ -9,12 +9,9 @@ function useAnimations(clips, root) {
|
|
|
9
9
|
} : root : ref); // eslint-disable-next-line prettier/prettier
|
|
10
10
|
|
|
11
11
|
const [mixer] = React.useState(() => new AnimationMixer(undefined));
|
|
12
|
-
React.useLayoutEffect(() =>
|
|
13
|
-
actualRef.current = root && (root instanceof Object3D ? root : root.current);
|
|
14
|
-
mixer._root = actualRef.current;
|
|
15
|
-
}, [root]);
|
|
12
|
+
React.useLayoutEffect(() => void (mixer._root = actualRef.current), [mixer, root]);
|
|
16
13
|
const lazyActions = React.useRef({});
|
|
17
|
-
const api = React.
|
|
14
|
+
const [api] = React.useState(() => {
|
|
18
15
|
const actions = {};
|
|
19
16
|
clips.forEach(clip => Object.defineProperty(actions, clip.name, {
|
|
20
17
|
enumerable: true,
|
|
@@ -34,14 +31,13 @@ function useAnimations(clips, root) {
|
|
|
34
31
|
names: clips.map(c => c.name),
|
|
35
32
|
mixer
|
|
36
33
|
};
|
|
37
|
-
}
|
|
34
|
+
});
|
|
38
35
|
useFrame((state, delta) => mixer.update(delta));
|
|
39
36
|
React.useEffect(() => {
|
|
40
37
|
const currentRoot = actualRef.current;
|
|
41
38
|
return () => {
|
|
42
39
|
// Clean up only when clips change, wipe out lazy actions and uncache clips
|
|
43
40
|
lazyActions.current = {};
|
|
44
|
-
mixer.stopAllAction();
|
|
45
41
|
Object.values(api.actions).forEach(action => {
|
|
46
42
|
if (currentRoot) {
|
|
47
43
|
mixer.uncacheAction(action, currentRoot);
|
|
@@ -49,6 +45,11 @@ function useAnimations(clips, root) {
|
|
|
49
45
|
});
|
|
50
46
|
};
|
|
51
47
|
}, [clips]);
|
|
48
|
+
React.useEffect(() => {
|
|
49
|
+
return () => {
|
|
50
|
+
mixer.stopAllAction();
|
|
51
|
+
};
|
|
52
|
+
}, [mixer]);
|
|
52
53
|
return api;
|
|
53
54
|
}
|
|
54
55
|
|