From 055e5283546c2dc3a1c6694bba7e582a64bbd7aa Mon Sep 17 00:00:00 2001 From: "H. E." <6037756+rndexe@users.noreply.github.com> Date: Fri, 9 Aug 2024 22:20:04 +0530 Subject: [PATCH] Fix infinite-scroll demo (#63) --- demos/infinite-scroll/package.json | 2 +- demos/infinite-scroll/src/ScrollControls.tsx | 16 +++++++++------- demos/infinite-scroll/src/index.jsx | 8 ++++---- 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/demos/infinite-scroll/package.json b/demos/infinite-scroll/package.json index e8acc009..d9516d77 100644 --- a/demos/infinite-scroll/package.json +++ b/demos/infinite-scroll/package.json @@ -29,7 +29,7 @@ "dev": "vite --host", "dev3": "e2e-dev $npm_package_name", "build": "tsc && vite build", - "bbuild2": "tsc && e2e-build $npm_package_name", + "build2": "tsc && e2e-build $npm_package_name", "preview": "vite preview" }, "browserslist": [ diff --git a/demos/infinite-scroll/src/ScrollControls.tsx b/demos/infinite-scroll/src/ScrollControls.tsx index 0d96d1ec..be0be311 100755 --- a/demos/infinite-scroll/src/ScrollControls.tsx +++ b/demos/infinite-scroll/src/ScrollControls.tsx @@ -1,6 +1,6 @@ import * as THREE from 'three' import * as React from 'react' -import * as ReactDOM from 'react-dom' +import { createRoot } from 'react-dom/client' import { context as fiberContext, useFrame, useThree } from '@react-three/fiber' import mergeRefs from 'react-merge-refs' @@ -113,7 +113,9 @@ export function ScrollControls({ const oldTarget = typeof events.connected !== 'boolean' ? events.connected : gl.domElement requestAnimationFrame(() => events.connect?.(el)) + // @ts-ignore const oldCompute = raycaster.computeOffsets + // @ts-ignore raycaster.computeOffsets = ({ clientX, clientY }) => ({ offsetX: clientX - (target as HTMLElement).offsetLeft, offsetY: clientY - (target as HTMLElement).offsetTop @@ -121,6 +123,7 @@ export function ScrollControls({ return () => { target.removeChild(el) + // @ts-ignore raycaster.computeOffsets = oldCompute events.connect?.(oldTarget) } @@ -135,7 +138,7 @@ export function ScrollControls({ let disableScroll = true let firstRun = true - const onScroll = (e) => { + const onScroll = (e : any) => { // Prevent first scroll because it is indirectly caused by the one pixel offset if (!enabled || firstRun) return invalidate() @@ -161,7 +164,7 @@ export function ScrollControls({ el.addEventListener('scroll', onScroll, { passive: true }) requestAnimationFrame(() => (firstRun = false)) - const onWheel = (e) => (el.scrollLeft += e.deltaY / 2) + const onWheel = (e : any) => (el.scrollLeft += e.deltaY / 2) if (horizontal) el.addEventListener('wheel', onWheel, { passive: true }) return () => { @@ -179,7 +182,7 @@ export function ScrollControls({ return {children} } -const ScrollCanvas = React.forwardRef(({ children }, ref) => { +const ScrollCanvas = React.forwardRef(({ children } : { children?: React.ReactNode}, ref) => { const group = React.useRef(null!) const state = useScroll() const { width, height } = useThree((state) => state.viewport) @@ -203,13 +206,12 @@ const ScrollHtml = React.forwardRef( }px,0)` } }) - ReactDOM.render( + createRoot(state.fixed).render(
{children} -
, - state.fixed + ) return null } diff --git a/demos/infinite-scroll/src/index.jsx b/demos/infinite-scroll/src/index.jsx index 9705850d..181e5eb2 100755 --- a/demos/infinite-scroll/src/index.jsx +++ b/demos/infinite-scroll/src/index.jsx @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom' +import { createRoot } from 'react-dom/client' import { Logo } from '@pmndrs/branding' import './styles.css' import App from './App' @@ -17,11 +17,11 @@ function Overlay() { ) } -ReactDOM.render( +createRoot( + document.getElementById('root')).render( <> - , - document.getElementById('root') + )