pmndrs / react-three-fiber

🇨🇭 A React renderer for Three.js
https://docs.pmnd.rs/react-three-fiber
MIT License
27.62k stars 1.6k forks source link

Types: Removed classes from three.js are still available at R3F #3210

Closed satoshionoda closed 8 months ago

satoshionoda commented 8 months ago

**BufferGeometry such as boxBufferGeometry, circleBufferGeometry and others had been deprecated since three.js r144 and completely removed at r154. But they are still available at R3F and cause runtime error when we use.

Can I make a PR of changing three-types.ts?

CodyJasonBennett commented 8 months ago

No, that is a breaking change which is why they are deprecated in those definitions. Maybe there's a way for TS to surface this in the JSX, otherwise this is not actionable until our next major where JSX is typed dynamically.

satoshionoda commented 8 months ago

@CodyJasonBennett

Those **BufferGeometry are not deprecated anymore, it's completely removed from THREE and causes runtime error with the latest versions. Do we still need them on the R3F definition?

DEMO: https://codesandbox.io/p/sandbox/loving-tereshkova-rcvl4h?file=%2Fsrc%2FApp.tsx%3A6%2C15

CodyJasonBennett commented 8 months ago

Please see my prior comment. We have acknowledged this before in #3038 with #3052. We cannot remove even depreciated JSX since we support older three.js versions. Such is the status quo until our next major where these are dynamically typed into JSX and not hardcoded three-types.tsx@v9. This was the result of 3 years of work and is not possible to backport to v8. Please, no more pushback on this unless you fully acknowledge our API contract and constraints, because frankly I see no other solution nor dire problem this is worth undivided attention for.