@react-three/fiber 8.0.0-beta.5 → 8.0.0-beta.8
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.
- package/dist/declarations/src/core/events.d.ts +11 -6
- package/dist/declarations/src/core/hooks.d.ts +6 -6
- package/dist/declarations/src/core/index.d.ts +13 -5
- package/dist/declarations/src/core/store.d.ts +12 -21
- package/dist/declarations/src/core/utils.d.ts +2 -1
- package/dist/{index-5dc2de40.cjs.dev.js → index-2056f0b6.cjs.dev.js} +144 -131
- package/dist/{index-32069e53.esm.js → index-3238fd12.esm.js} +143 -131
- package/dist/{index-e2a317e2.cjs.prod.js → index-f5108bb9.cjs.prod.js} +144 -131
- package/dist/react-three-fiber.cjs.dev.js +28 -7
- package/dist/react-three-fiber.cjs.prod.js +28 -7
- package/dist/react-three-fiber.esm.js +27 -7
- package/native/dist/react-three-fiber-native.cjs.dev.js +27 -8
- package/native/dist/react-three-fiber-native.cjs.prod.js +27 -8
- package/native/dist/react-three-fiber-native.esm.js +25 -8
- package/package.json +1 -1
|
@@ -5,17 +5,16 @@ export interface Intersection extends THREE.Intersection {
|
|
|
5
5
|
eventObject: THREE.Object3D;
|
|
6
6
|
}
|
|
7
7
|
export interface IntersectionEvent<TSourceEvent> extends Intersection {
|
|
8
|
+
eventObject: THREE.Object3D;
|
|
8
9
|
intersections: Intersection[];
|
|
9
|
-
stopped: boolean;
|
|
10
10
|
unprojectedPoint: THREE.Vector3;
|
|
11
|
+
pointer: THREE.Vector2;
|
|
12
|
+
delta: number;
|
|
11
13
|
ray: THREE.Ray;
|
|
12
14
|
camera: Camera;
|
|
13
15
|
stopPropagation: () => void;
|
|
14
|
-
sourceEvent: TSourceEvent;
|
|
15
16
|
nativeEvent: TSourceEvent;
|
|
16
|
-
|
|
17
|
-
spaceX: number;
|
|
18
|
-
spaceY: number;
|
|
17
|
+
stopped: boolean;
|
|
19
18
|
}
|
|
20
19
|
export declare type Camera = THREE.OrthographicCamera | THREE.PerspectiveCamera;
|
|
21
20
|
export declare type ThreeEvent<TEvent> = IntersectionEvent<TEvent>;
|
|
@@ -47,8 +46,14 @@ export declare type EventHandlers = {
|
|
|
47
46
|
onPointerCancel?: (event: ThreeEvent<PointerEvent>) => void;
|
|
48
47
|
onWheel?: (event: ThreeEvent<WheelEvent>) => void;
|
|
49
48
|
};
|
|
49
|
+
export declare type FilterFunction = (items: THREE.Intersection[], state: RootState) => THREE.Intersection[];
|
|
50
|
+
export declare type ComputeFunction = (event: DomEvent, root: RootState, previous?: RootState) => void;
|
|
50
51
|
export interface EventManager<TTarget> {
|
|
51
|
-
|
|
52
|
+
enabled: boolean;
|
|
53
|
+
priority: number;
|
|
54
|
+
compute?: ComputeFunction;
|
|
55
|
+
filter?: FilterFunction;
|
|
56
|
+
connected?: TTarget;
|
|
52
57
|
handlers?: Events;
|
|
53
58
|
connect?: (target: TTarget) => void;
|
|
54
59
|
disconnect?: () => void;
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
|
-
import
|
|
3
|
-
import { StateSelector, EqualityChecker, UseBoundStore } from 'zustand';
|
|
2
|
+
import { StateSelector, EqualityChecker } from 'zustand';
|
|
4
3
|
import { GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
|
|
5
4
|
import { RootState, RenderCallback } from './store';
|
|
6
5
|
import { ObjectMap } from './utils';
|
|
@@ -11,15 +10,16 @@ export declare type Extensions = (loader: THREE.Loader) => void;
|
|
|
11
10
|
export declare type LoaderResult<T> = T extends any[] ? Loader<T[number]> : Loader<T>;
|
|
12
11
|
export declare type ConditionalType<Child, Parent, Truthy, Falsy> = Child extends Parent ? Truthy : Falsy;
|
|
13
12
|
export declare type BranchingReturn<T, Parent, Coerced> = ConditionalType<T, Parent, Coerced, T>;
|
|
14
|
-
|
|
13
|
+
declare type noop = (...args: any[]) => any;
|
|
14
|
+
declare type PickFunction<T extends noop> = (...args: Parameters<T>) => ReturnType<T>;
|
|
15
|
+
export declare function useStore(): import("zustand").UseBoundStore<RootState, import("zustand").StoreApi<RootState>>;
|
|
15
16
|
export declare function useThree<T = RootState>(selector?: StateSelector<RootState, T>, equalityFn?: EqualityChecker<T>): T;
|
|
16
|
-
export declare function useInject(state: Partial<RootState>): [React.FC<{
|
|
17
|
-
children: React.ReactNode;
|
|
18
|
-
}>, UseBoundStore<RootState, import("zustand").StoreApi<RootState>>];
|
|
19
17
|
export declare function useFrame(callback: RenderCallback, renderPriority?: number): null;
|
|
20
18
|
export declare function useGraph(object: THREE.Object3D): ObjectMap;
|
|
19
|
+
export declare function useMemoizedFn<T extends noop>(fn?: T): PickFunction<T>;
|
|
21
20
|
export declare function useLoader<T, U extends string | string[]>(Proto: new () => LoaderResult<T>, input: U, extensions?: Extensions, onProgress?: (event: ProgressEvent<EventTarget>) => void): U extends any[] ? BranchingReturn<T, GLTF, GLTF & ObjectMap>[] : BranchingReturn<T, GLTF, GLTF & ObjectMap>;
|
|
22
21
|
export declare namespace useLoader {
|
|
23
22
|
var preload: <T, U extends string | string[]>(Proto: new () => LoaderResult<T>, input: U, extensions?: Extensions | undefined) => undefined;
|
|
24
23
|
var clear: <T, U extends string | string[]>(Proto: new () => LoaderResult<T>, input: U) => void;
|
|
25
24
|
}
|
|
25
|
+
export {};
|
|
@@ -5,8 +5,8 @@ import { UseBoundStore } from 'zustand';
|
|
|
5
5
|
import { Renderer, StoreProps, context, RootState, Size } from './store';
|
|
6
6
|
import { extend, Root } from './renderer';
|
|
7
7
|
import { addEffect, addAfterEffect, addTail } from './loop';
|
|
8
|
-
import { EventManager } from './events';
|
|
9
|
-
import { dispose } from './utils';
|
|
8
|
+
import { EventManager, ComputeFunction } from './events';
|
|
9
|
+
import { dispose, getRootState } from './utils';
|
|
10
10
|
declare const roots: Map<Element, Root>;
|
|
11
11
|
declare const invalidate: (state?: RootState | undefined) => void, advance: (timestamp: number, runGlobalEffects?: boolean, state?: RootState | undefined, frame?: THREE.XRFrame | undefined) => void;
|
|
12
12
|
declare const reconciler: import("react-reconciler").Reconciler<unknown, unknown, unknown, unknown, unknown>, applyProps: typeof import("./utils").applyProps;
|
|
@@ -26,9 +26,17 @@ export declare type ReconcilerRoot<TCanvas extends Element> = {
|
|
|
26
26
|
unmount: () => void;
|
|
27
27
|
};
|
|
28
28
|
declare function createRoot<TCanvas extends Element>(canvas: TCanvas): ReconcilerRoot<TCanvas>;
|
|
29
|
-
declare function render<TCanvas extends Element>(
|
|
29
|
+
declare function render<TCanvas extends Element>(children: React.ReactNode, canvas: TCanvas, config: RenderProps<TCanvas>): UseBoundStore<RootState>;
|
|
30
30
|
declare function unmountComponentAtNode<TElement extends Element>(canvas: TElement, callback?: (canvas: TElement) => void): void;
|
|
31
|
-
declare
|
|
31
|
+
export declare type InjectState = Partial<Omit<RootState, 'set' | 'get' | 'setSize' | 'setFrameloop' | 'setDpr' | 'events' | 'invalidate' | 'advance' | 'performance' | 'internal'> & {
|
|
32
|
+
events: {
|
|
33
|
+
enabled?: boolean;
|
|
34
|
+
priority?: number;
|
|
35
|
+
compute?: ComputeFunction;
|
|
36
|
+
connected?: any;
|
|
37
|
+
};
|
|
38
|
+
}>;
|
|
39
|
+
declare function createPortal(children: React.ReactNode, container: THREE.Object3D, state?: InjectState): React.ReactNode;
|
|
32
40
|
declare const act: any;
|
|
33
41
|
export * from './hooks';
|
|
34
|
-
export { context, render, createRoot, unmountComponentAtNode, createPortal, reconciler, applyProps, dispose, invalidate, advance, extend, addEffect, addAfterEffect, addTail, act, roots as _roots, };
|
|
42
|
+
export { context, render, createRoot, unmountComponentAtNode, createPortal, reconciler, applyProps, dispose, invalidate, advance, extend, addEffect, addAfterEffect, addTail, getRootState, act, roots as _roots, };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import * as ReactThreeFiber from '../three-types';
|
|
4
|
-
import { GetState, SetState, UseBoundStore } from 'zustand';
|
|
4
|
+
import { GetState, SetState, StoreApi, UseBoundStore } from 'zustand';
|
|
5
5
|
import { DomEvent, EventManager, PointerCaptureTarget, ThreeEvent } from './events';
|
|
6
6
|
export interface Intersection extends THREE.Intersection {
|
|
7
7
|
eventObject: THREE.Object3D;
|
|
@@ -23,11 +23,6 @@ export declare type Viewport = Size & {
|
|
|
23
23
|
aspect: number;
|
|
24
24
|
};
|
|
25
25
|
export declare type Camera = THREE.OrthographicCamera | THREE.PerspectiveCamera;
|
|
26
|
-
export declare type Raycaster = THREE.Raycaster & {
|
|
27
|
-
enabled: boolean;
|
|
28
|
-
filter?: FilterFunction;
|
|
29
|
-
computeOffsets?: ComputeOffsetsFunction;
|
|
30
|
-
};
|
|
31
26
|
export declare type RenderCallback = (state: RootState, delta: number, frame?: THREE.XRFrame) => void;
|
|
32
27
|
export declare type Performance = {
|
|
33
28
|
current: number;
|
|
@@ -55,45 +50,41 @@ export declare type InternalState = {
|
|
|
55
50
|
subscribe: (callback: React.MutableRefObject<RenderCallback>, priority?: number) => () => void;
|
|
56
51
|
};
|
|
57
52
|
export declare type RootState = {
|
|
53
|
+
set: SetState<RootState>;
|
|
54
|
+
get: GetState<RootState>;
|
|
58
55
|
gl: THREE.WebGLRenderer;
|
|
59
56
|
camera: Camera & {
|
|
60
57
|
manual?: boolean;
|
|
61
58
|
};
|
|
62
|
-
|
|
59
|
+
scene: THREE.Scene;
|
|
60
|
+
raycaster: THREE.Raycaster;
|
|
61
|
+
clock: THREE.Clock;
|
|
63
62
|
events: EventManager<any>;
|
|
64
63
|
xr: {
|
|
65
64
|
connect: () => void;
|
|
66
65
|
disconnect: () => void;
|
|
67
66
|
};
|
|
68
|
-
scene: THREE.Scene;
|
|
69
67
|
controls: THREE.EventDispatcher | null;
|
|
68
|
+
pointer: THREE.Vector2;
|
|
70
69
|
mouse: THREE.Vector2;
|
|
71
|
-
clock: THREE.Clock;
|
|
72
70
|
linear: boolean;
|
|
73
71
|
flat: boolean;
|
|
74
72
|
frameloop: 'always' | 'demand' | 'never';
|
|
75
73
|
performance: Performance;
|
|
76
74
|
size: Size;
|
|
77
75
|
viewport: Viewport & {
|
|
78
|
-
getCurrentViewport: (camera?: Camera, target?: THREE.Vector3
|
|
76
|
+
getCurrentViewport: (camera?: Camera, target?: THREE.Vector3 | Parameters<THREE.Vector3['set']>, size?: Size) => Omit<Viewport, 'dpr' | 'initialDpr'>;
|
|
79
77
|
};
|
|
80
|
-
set: SetState<RootState>;
|
|
81
|
-
get: GetState<RootState>;
|
|
82
78
|
invalidate: () => void;
|
|
83
79
|
advance: (timestamp: number, runGlobalEffects?: boolean) => void;
|
|
80
|
+
setEvents: (events: EventManager<any>) => void;
|
|
84
81
|
setSize: (width: number, height: number) => void;
|
|
85
82
|
setDpr: (dpr: Dpr) => void;
|
|
86
83
|
setFrameloop: (frameloop?: 'always' | 'demand' | 'never') => void;
|
|
87
84
|
onPointerMissed?: (event: MouseEvent) => void;
|
|
85
|
+
previousRoot?: UseBoundStore<RootState, StoreApi<RootState>>;
|
|
88
86
|
internal: InternalState;
|
|
89
87
|
};
|
|
90
|
-
export declare type FilterFunction = (items: THREE.Intersection[], state: RootState) => THREE.Intersection[];
|
|
91
|
-
export declare type ComputeOffsetsFunction = (event: any, state: RootState) => {
|
|
92
|
-
offsetX: number;
|
|
93
|
-
offsetY: number;
|
|
94
|
-
width?: number;
|
|
95
|
-
height?: number;
|
|
96
|
-
};
|
|
97
88
|
export declare type StoreProps = {
|
|
98
89
|
gl: THREE.WebGLRenderer;
|
|
99
90
|
size: Size;
|
|
@@ -104,12 +95,12 @@ export declare type StoreProps = {
|
|
|
104
95
|
frameloop?: 'always' | 'demand' | 'never';
|
|
105
96
|
performance?: Partial<Omit<Performance, 'regress'>>;
|
|
106
97
|
dpr?: Dpr;
|
|
107
|
-
raycaster?: Partial<Raycaster>;
|
|
98
|
+
raycaster?: Partial<THREE.Raycaster>;
|
|
108
99
|
camera?: (Camera | Partial<ReactThreeFiber.Object3DNode<THREE.Camera, typeof THREE.Camera> & ReactThreeFiber.Object3DNode<THREE.PerspectiveCamera, typeof THREE.PerspectiveCamera> & ReactThreeFiber.Object3DNode<THREE.OrthographicCamera, typeof THREE.OrthographicCamera>>) & {
|
|
109
100
|
manual?: boolean;
|
|
110
101
|
};
|
|
111
102
|
onPointerMissed?: (event: MouseEvent) => void;
|
|
112
103
|
};
|
|
113
|
-
declare const context: React.Context<UseBoundStore<RootState,
|
|
104
|
+
declare const context: React.Context<UseBoundStore<RootState, StoreApi<RootState>>>;
|
|
114
105
|
declare const createStore: (invalidate: (state?: RootState | undefined) => void, advance: (timestamp: number, runGlobalEffects?: boolean | undefined, state?: RootState | undefined, frame?: THREE.XRFrame | undefined) => void) => UseBoundStore<RootState>;
|
|
115
106
|
export { createStore, context };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as THREE from 'three';
|
|
2
2
|
import { AttachType, Instance, InstanceProps, LocalState } from './renderer';
|
|
3
|
-
import { Dpr } from './store';
|
|
3
|
+
import { Dpr, RootState } from './store';
|
|
4
4
|
export declare const DEFAULT = "__default";
|
|
5
5
|
export declare type DiffSet = {
|
|
6
6
|
memoized: {
|
|
@@ -21,6 +21,7 @@ export declare type ObjectMap = {
|
|
|
21
21
|
};
|
|
22
22
|
};
|
|
23
23
|
export declare function calculateDpr(dpr: Dpr): number;
|
|
24
|
+
export declare const getRootState: (obj: THREE.Object3D) => RootState | undefined;
|
|
24
25
|
export declare function filterKeys<TObj extends {
|
|
25
26
|
[key: string]: any;
|
|
26
27
|
}, TOmit extends boolean, TKey extends keyof TObj>(obj: TObj, omit: TOmit, ...keys: TKey[]): TOmit extends true ? Omit<TObj, TKey> : Pick<TObj, TKey>;
|