Skip to content

Commit

Permalink
fix: oc & cc revert events prop as it breaks pointerevents, + update …
Browse files Browse the repository at this point in the history
…deps
  • Loading branch information
drcmda committed Feb 10, 2023
1 parent ec093c2 commit 83b02a4
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 54 deletions.
2 changes: 0 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -369,8 +369,6 @@ type CameraControlsProps = {
onStart?: (e?: { type: 'controlstart' }) => void
onEnd?: (e?: { type: 'controlend' }) => void
onChange?: (e?: { type: 'update' }) => void
/** While "dragging", state's `events` are disabled by default(for performance). You can explicitly disable this optimisation, by setting this prop to true */
events?: boolean
}
```
Expand Down
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@
"@babel/runtime": "^7.11.2",
"@react-spring/three": "^9.3.1",
"@use-gesture/react": "^10.2.24",
"camera-controls": "^2.0.1",
"detect-gpu": "^5.0.9",
"camera-controls": "^2.1.0",
"detect-gpu": "^5.0.10",
"glsl-noise": "^0.0.0",
"lodash.clamp": "^4.0.3",
"lodash.omit": "^4.5.0",
Expand Down
20 changes: 2 additions & 18 deletions src/core/CameraControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,17 +30,7 @@ export const CameraControls = forwardRef<CameraControlsImpl, CameraControlsProps
extend({ CameraControlsImpl })
}, [])

const {
camera,
domElement,
makeDefault,
onStart,
onEnd,
onChange,
events: enableEvents = true,
regress,
...restProps
} = props
const { camera, domElement, makeDefault, onStart, onEnd, onChange, regress, ...restProps } = props

const defaultCamera = useThree((state) => state.camera)
const gl = useThree((state) => state.gl)
Expand All @@ -66,10 +56,6 @@ export const CameraControls = forwardRef<CameraControlsImpl, CameraControlsProps
}, [explDomElement, controls])

React.useEffect(() => {
if (enableEvents) {
setEvents({ enabled: true })
}

const callback = (e) => {
invalidate()
if (regress) performance.regress()
Expand All @@ -78,12 +64,10 @@ export const CameraControls = forwardRef<CameraControlsImpl, CameraControlsProps

const onStartCb: CameraControlsProps['onStart'] = (e) => {
if (onStart) onStart(e)
if (!enableEvents) setEvents({ enabled: false })
}

const onEndCb: CameraControlsProps['onEnd'] = (e) => {
if (onEnd) onEnd(e)
if (!enableEvents) setEvents({ enabled: true })
}

controls.addEventListener('update', callback)
Expand All @@ -95,7 +79,7 @@ export const CameraControls = forwardRef<CameraControlsImpl, CameraControlsProps
controls.removeEventListener('controlstart', onStartCb)
controls.removeEventListener('controlend', onEndCb)
}
}, [controls, enableEvents, onStart, onEnd, invalidate, setEvents, regress, onChange])
}, [controls, onStart, onEnd, invalidate, setEvents, regress, onChange])

useEffect(() => {
if (makeDefault) {
Expand Down
26 changes: 2 additions & 24 deletions src/core/OrbitControls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,29 +20,13 @@ export type OrbitControlsProps = Omit<
onStart?: (e?: Event) => void
regress?: boolean
target?: ReactThreeFiber.Vector3
// Wether to enable events during orbit controls interaction
events?: boolean
}
>,
'ref'
>

export const OrbitControls = React.forwardRef<OrbitControlsImpl, OrbitControlsProps>(
(
{
makeDefault,
events: enableEvents = true,
camera,
regress,
domElement,
enableDamping = true,
onChange,
onStart,
onEnd,
...restProps
},
ref
) => {
({ makeDefault, camera, regress, domElement, enableDamping = true, onChange, onStart, onEnd, ...restProps }, ref) => {
const invalidate = useThree((state) => state.invalidate)
const defaultCamera = useThree((state) => state.camera)
const gl = useThree((state) => state.gl)
Expand All @@ -65,10 +49,6 @@ export const OrbitControls = React.forwardRef<OrbitControlsImpl, OrbitControlsPr
}, [explDomElement, regress, controls, invalidate])

React.useEffect(() => {
if (enableEvents) {
setEvents({ enabled: true })
}

const callback = (e: OrbitControlsChangeEvent) => {
invalidate()
if (regress) performance.regress()
Expand All @@ -77,12 +57,10 @@ export const OrbitControls = React.forwardRef<OrbitControlsImpl, OrbitControlsPr

const onStartCb = (e: Event) => {
if (onStart) onStart(e)
if (!enableEvents) setEvents({ enabled: false })
}

const onEndCb = (e: Event) => {
if (onEnd) onEnd(e)
if (!enableEvents) setEvents({ enabled: true })
}

controls.addEventListener('change', callback)
Expand All @@ -94,7 +72,7 @@ export const OrbitControls = React.forwardRef<OrbitControlsImpl, OrbitControlsPr
controls.removeEventListener('end', onEndCb)
controls.removeEventListener('change', callback)
}
}, [onChange, onStart, onEnd, controls, invalidate, enableEvents, setEvents])
}, [onChange, onStart, onEnd, controls, invalidate, setEvents])

React.useEffect(() => {
if (makeDefault) {
Expand Down
16 changes: 8 additions & 8 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4602,10 +4602,10 @@ camelcase@^6.0.0, camelcase@^6.2.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a"
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==

camera-controls@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.0.1.tgz#051f6f5c9c2ea515250bf23b7e5bc0f0f12282c5"
integrity sha512-KYzlahxCFap5y+M3nkkzCYKAT1Rjh5jL7AOzFoDrygxrBiF+ffYzOridEywQBhqcUYU8hDErgqZNqFNUkkAzbQ==
camera-controls@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.1.0.tgz#75edd73935270af76b4202dc794cf022afcee4b0"
integrity sha512-9b2dpUZp+3Rfkh/E8dU9O9/rBbPDzyB5DBINktedRAF4I5ldZUgBiSYtFac7wF3yXNf4UH2pjP3uRcoAtXTh4A==

caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001317:
version "1.0.30001322"
Expand Down Expand Up @@ -5466,10 +5466,10 @@ detab@2.0.4:
dependencies:
repeat-string "^1.5.4"

detect-gpu@^5.0.9:
version "5.0.9"
resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.9.tgz#bbaee58085a2e5765aade3df2f49c9393e70b39f"
integrity sha512-3wFHiw8OJjZqxQCbluNP8JNmoDEJuWf1LaLJRvOPC+X1aBQyHhS4R67BINQVoq2vuSrUnpMNIHQ+JXwKd3UhfA==
detect-gpu@^5.0.10:
version "5.0.10"
resolved "https://registry.yarnpkg.com/detect-gpu/-/detect-gpu-5.0.10.tgz#4010b89a7f91a24ed8d2a136ee6ac816b39d0801"
integrity sha512-V0g0RhtlItrhgBM4/T/lTpjephr9b/xDAOtJZztGTvQxaPSMQ4EAiV9tdHL+4GcT1ATvYmMCm4QbrhyjdEH6Fw==
dependencies:
webgl-constants "^1.1.1"

Expand Down

1 comment on commit 83b02a4

@vercel
Copy link

@vercel vercel bot commented on 83b02a4 Feb 10, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please sign in to comment.