diff --git a/src/Spline.tsx b/src/Spline.tsx index 1c1477b..211fb6e 100644 --- a/src/Spline.tsx +++ b/src/Spline.tsx @@ -64,42 +64,52 @@ const Spline = forwardRef( const events: { name: SplineEventName; cb?: (e: SplineEvent) => void; + options: AddEventListenerOptions; }[] = [ { name: 'mouseDown', cb: onSplineMouseDown, + options: {}, }, { name: 'mouseUp', cb: onSplineMouseUp, + options: {}, }, { name: 'mouseHover', cb: onSplineMouseHover, + options: {}, }, { name: 'keyDown', cb: onSplineKeyDown, + options: {}, }, { name: 'keyUp', cb: onSplineKeyUp, + options: {}, }, { name: 'start', cb: onSplineStart, + options: {}, }, { name: 'lookAt', cb: onSplineLookAt, + options: { passive: true }, }, { name: 'follow', cb: onSplineFollow, + options: { passive: true }, }, { name: 'scroll', cb: onSplineScroll, + options: { passive: true }, }, ]; @@ -111,7 +121,8 @@ const Spline = forwardRef( for (let event of events) { if (event.cb) { - speApp.addEventListener(event.name, event.cb); + // @ts-expect-error: @splinetool/runtime doesn't have types for addEventListener options + speApp.addEventListener(event.name, event.cb, event.options); } } @@ -127,7 +138,8 @@ const Spline = forwardRef( return () => { for (let event of events) { if (event.cb) { - speApp.removeEventListener(event.name, event.cb); + // @ts-expect-error: @splinetool/runtime doesn't have types for addEventListener options + speApp.removeEventListener(event.name, event.cb, event.options); } } speApp.dispose();