@react-three/fiber 8.5.1 → 8.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,11 @@
1
- import * as React from 'react';
2
- import type { Options as ResizeOptions } from 'react-use-measure';
3
- import { RenderProps } from '../core';
4
- export interface Props extends Omit<RenderProps<HTMLCanvasElement>, 'size'>, React.HTMLAttributes<HTMLDivElement> {
5
- children: React.ReactNode;
6
- fallback?: React.ReactNode;
7
- resize?: ResizeOptions;
8
- }
9
- export declare const Canvas: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLCanvasElement>>;
1
+ import * as React from 'react';
2
+ import type { Options as ResizeOptions } from 'react-use-measure';
3
+ import { RenderProps } from '../core';
4
+ export interface Props extends Omit<RenderProps<HTMLCanvasElement>, 'size'>, React.HTMLAttributes<HTMLDivElement> {
5
+ children: React.ReactNode;
6
+ fallback?: React.ReactNode;
7
+ resize?: ResizeOptions;
8
+ eventSource?: HTMLElement;
9
+ eventPrefix?: 'offset' | 'client' | 'page' | 'layer' | 'screen';
10
+ }
11
+ export declare const Canvas: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLCanvasElement>>;
@@ -1,4 +1,4 @@
1
- import { UseBoundStore } from 'zustand';
2
- import { RootState } from '../core/store';
3
- import { EventManager } from '../core/events';
4
- export declare function createPointerEvents(store: UseBoundStore<RootState>): EventManager<HTMLElement>;
1
+ import { UseBoundStore } from 'zustand';
2
+ import { RootState } from '../core/store';
3
+ import { EventManager } from '../core/events';
4
+ export declare function createPointerEvents(store: UseBoundStore<RootState>): EventManager<HTMLElement>;
@@ -126,6 +126,8 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
126
126
  style,
127
127
  gl,
128
128
  events = createPointerEvents,
129
+ eventSource,
130
+ eventPrefix,
129
131
  shadows,
130
132
  linear,
131
133
  flat,
@@ -184,7 +186,21 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
184
186
  // Pass mutable reference to onPointerMissed so it's free to update
185
187
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
186
188
  onCreated: state => {
187
- state.events.connect == null ? void 0 : state.events.connect(divRef.current);
189
+ // Connect to event source
190
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? eventSource : divRef.current); // Set up compute function
191
+
192
+ if (eventPrefix) {
193
+ state.setEvents({
194
+ compute: (event, state) => {
195
+ const x = event[eventPrefix + 'X'];
196
+ const y = event[eventPrefix + 'Y'];
197
+ state.pointer.set(x / state.size.width * 2 - 1, -(y / state.size.height) * 2 + 1);
198
+ state.raycaster.setFromCamera(state.pointer, state.camera);
199
+ }
200
+ });
201
+ } // Call onCreated callback
202
+
203
+
188
204
  onCreated == null ? void 0 : onCreated(state);
189
205
  }
190
206
  });
@@ -126,6 +126,8 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
126
126
  style,
127
127
  gl,
128
128
  events = createPointerEvents,
129
+ eventSource,
130
+ eventPrefix,
129
131
  shadows,
130
132
  linear,
131
133
  flat,
@@ -184,7 +186,21 @@ const Canvas = /*#__PURE__*/React__namespace.forwardRef(function Canvas({
184
186
  // Pass mutable reference to onPointerMissed so it's free to update
185
187
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
186
188
  onCreated: state => {
187
- state.events.connect == null ? void 0 : state.events.connect(divRef.current);
189
+ // Connect to event source
190
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? eventSource : divRef.current); // Set up compute function
191
+
192
+ if (eventPrefix) {
193
+ state.setEvents({
194
+ compute: (event, state) => {
195
+ const x = event[eventPrefix + 'X'];
196
+ const y = event[eventPrefix + 'Y'];
197
+ state.pointer.set(x / state.size.width * 2 - 1, -(y / state.size.height) * 2 + 1);
198
+ state.raycaster.setFromCamera(state.pointer, state.camera);
199
+ }
200
+ });
201
+ } // Call onCreated callback
202
+
203
+
188
204
  onCreated == null ? void 0 : onCreated(state);
189
205
  }
190
206
  });
@@ -99,6 +99,8 @@ const Canvas = /*#__PURE__*/React.forwardRef(function Canvas({
99
99
  style,
100
100
  gl,
101
101
  events = createPointerEvents,
102
+ eventSource,
103
+ eventPrefix,
102
104
  shadows,
103
105
  linear,
104
106
  flat,
@@ -157,7 +159,21 @@ const Canvas = /*#__PURE__*/React.forwardRef(function Canvas({
157
159
  // Pass mutable reference to onPointerMissed so it's free to update
158
160
  onPointerMissed: (...args) => handlePointerMissed.current == null ? void 0 : handlePointerMissed.current(...args),
159
161
  onCreated: state => {
160
- state.events.connect == null ? void 0 : state.events.connect(divRef.current);
162
+ // Connect to event source
163
+ state.events.connect == null ? void 0 : state.events.connect(eventSource ? eventSource : divRef.current); // Set up compute function
164
+
165
+ if (eventPrefix) {
166
+ state.setEvents({
167
+ compute: (event, state) => {
168
+ const x = event[eventPrefix + 'X'];
169
+ const y = event[eventPrefix + 'Y'];
170
+ state.pointer.set(x / state.size.width * 2 - 1, -(y / state.size.height) * 2 + 1);
171
+ state.raycaster.setFromCamera(state.pointer, state.camera);
172
+ }
173
+ });
174
+ } // Call onCreated callback
175
+
176
+
161
177
  onCreated == null ? void 0 : onCreated(state);
162
178
  }
163
179
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-three/fiber",
3
- "version": "8.5.1",
3
+ "version": "8.6.0",
4
4
  "description": "A React renderer for Threejs",
5
5
  "keywords": [
6
6
  "react",