Most three-stdlib controllers like OrbitControls and others are incompatible with R3F controls API.
This is because R3F store controls: THREE.EventDispatcher | null (source) extends from THREE.EventDispatcher, but latest three-stdlib introduced its own EventDispatcher (pmndrs/three-stdlib#388) and their types do not match.
How to reproduce: Using latest R3F and three-stdlib write this line of code: useThree().set({controls: OrbitControls})
Expected: Typescript should not complain.
Currently: TS complains.
Depending on what's decided, we may not need to change anything in R3F, more info here: pmndrs/three-stdlib#388 (comment)
Most
three-stdlibcontrollers likeOrbitControlsand others are incompatible with R3F controls API.This is because R3F store
controls: THREE.EventDispatcher | null(source) extends fromTHREE.EventDispatcher, but latestthree-stdlibintroduced its ownEventDispatcher(pmndrs/three-stdlib#388) and their types do not match.How to reproduce: Using latest R3F and
three-stdlibwrite this line of code:useThree().set({controls: OrbitControls})Expected: Typescript should not complain.
Currently: TS complains.
Depending on what's decided, we may not need to change anything in R3F, more info here: pmndrs/three-stdlib#388 (comment)