- 2068f0cc: fix: events pointerlock, useLoader extension types
- 00c24718: fix: invalidate pierced props
- 4254400e: fix(createPortal): use correct JSX type
- fcb183e3: fix: call onUpdate for attached children prop update
- bedb16e7: fix: prefer named functions, for loops in hot paths
- 02a558bb: fix: upgrade deps
- 530a06d6: fix: upgrade deps to work-around CRA
- 2f2dc9f9: chore: upgrade bridge to harden suspense behavior
- 9f571239: fix #2506, events should fall back to rootstate"
- dc389ed6: fix(Canvas): prevent remount on context update
- 370d3ae5: refactor: pull context bridge from its-fine
- 46d8b440: bridge cross-container context
- 259c8895: fix: use self to get global context before window
- eb5a3be4: fix: if there is an eventsource pointerevent will be set to none
- 7f801e60: fix: events in portals carry the wrong raycaster, camera, etc
- 962cc270: fix: allow canvas eventsource to be a ref
- f5db1b78: feat: useInstanceHandle, flushGlobalEffects
- 57c12e9c: fix(types): @react-three/drei declaration files
- 7a0b5670: fix(core): don't append to unmounted containers
- 85c80e70: eventsource and eventprefix on the canvas component
- 87821d9: fix: null-check instance.children on reconstruct
- edc8252: feat: handle primitive children, auto-attach via instanceof
- aaeb2b8: fix(types): accept readonly arrays for vector props
- 9c450ec: feat: improve errors
- b8d2eab: fix: improve useLoader signature, initial size on createRoot
- acd6f04: fix: warn on stray text
- 25e35a1: fix: prefer useLayoutEffect in react-native
- 9770d7d: feat: expose ThreeElements interface for JSX elements
- 8d0f708c: Expose position information in state.size
- 7940995: fix: resume on xrsession end, export internal events
- 7b6df9df: fix: infinite loop updating cam viewport
- b7cd0f42: update viewport on camera changes
- ee8e785: fix: attach timings
- 29d03c64: revert multi attach
- 419e854: fix: always prepare primitives
- 3098b9b: fix: resizing in worker contexts, copy over attachments on reconstruct
- 4c87bce: fix: attach, devtools, and perf fixes
- 360b45a: fix: handle attach on reconstruct
- be567c1: fix: suspense attach and three compat in webpack
- 9e3369e: fix dom resize, improve native tree shaking
- 669c45c: correctly type useLoader results
- c4715d5f: allow invalidate to preempt more than 1 frame
- 5559a119: Add support for recoverable errors
- 9d77d8e2: fix: detach attribute removal
- 3d10413f: fix portal layers
- 5167b1e4: memoized.args can be undefined
- eb321afd: fix: remount bug, allow portals to inject custom size
- 624df949: fix: canvas unmount race condition"
- 952a566: fix: react SSR
- f63806b: fix: react SSR
- d4bafb9: fix re-parenting, useframe not working properly in portals, attach crash
- 227c328: fix pointer for root and portals
- e981a72: fix: mock three color management, loosen peer dep
- 3252aed: setevents needs to spread and be mirrored in portals
- 8035d1f: fix: legacy mode
- 26db195: add legacy flag to turn of three.colormanagement
- 385ba9c: v8 major, react-18 compat
- 04c07b8: v8 major, react-18 compat
- 347ea79: new beta for library testing
- 385ba9c: v8 major, react-18 compat
- cf6316c: new beta for library testing
- 8698734: Release latest patches
- 7f46ddf: cleanup captured pointers when released (#1914)
- 30d38b1: remove logs
- 259e1fa: add camera:manual
- 65e4147: up usemeasure, add last event to internals"
- 54cb0fd: update react-use-measure, allow it to use the offsetSize
- 7aa2eab: fix: remove zustand subcribe selector
- 6780f58: fix unmount pointer capture
- 894c550: fix: event count
- c7a4220: patch: applyprops returns the same instance
- c5645e8: fix primitve leftovers on switch
- 05af996: fix: revert the is function
- f256558: fix(core): don't overwrite camera rotation
- 51e6fc9: fix(core): safely handle external instances
- 0df6073: fix: missed events
- 62b0a3a: fix: event order of missed pointers
- e019dd4: fixes
- cd266e4: Fix diffProps dashed keys
- 6f68406: Allow getCurrentViewport to receive an array
- 0375896: Simplify useframe, support instanced event cancelation, silence disposal
- fb052ad: Fix babel-env browserslist transpiling into old code"
- c97794a: Add useLoader.clear(Loader, input)
- 974ecfb: Allow elements to define attachFns for specific mount/unmount
- a97aca3: Add controls state field
- 4c703d6: fix rttr didn't work with r130
- 96ae1ad: fix javascript interpreting negative renderpriority as positive
This is a major breaking change that will fix an edge-case. It will only affect you if you used negative useFrame indicies, for instance
useFrame(..., -1)
Surprisingly this disabled auto-rendering although the documentation says positive numbers only. As of v7 this will not take over the render loop.
function Render() {
// Takes over the render-loop, the user has the responsibility to render
useFrame(({ gl, scene, camera }) => {
gl.render(scene, camera)
}, 1)
function RenderOnTop() {
// This will render on top of the previous call
useFrame(({ gl, ... }) => {
gl.render(...)
}, 2)
function A() {
// Will *not* take over the render-loop, negative indices can still be useful for sorting
useFrame(() => ..., -1)
function B() {
// B's useFrame will execute *after* A's
useFrame(() => ..., -2)
- 26bc7eb: typescript changes
- 4f44a2c: use more helpful name with event handling in rttr
- Fix stopPropagation logic
- Allow object3d instances to be attached
- fix(rttr): if children is undefined return an array to map with
- 6faa090: Add shape to types, exclude event functions from event data
- 71e72c0: Fix constructor args with attached children (#1348)
- 015fc03: Only set up pointer/wheel events as passive
- a160e08: Fix event setPointerCapture and stopPropagation.