Skip to content

Commit

Permalink
fix t126 geom types, prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
drcmda committed Mar 7, 2021
1 parent 9031430 commit 4d48c57
Show file tree
Hide file tree
Showing 8 changed files with 46 additions and 52 deletions.
5 changes: 3 additions & 2 deletions .prettierrc
@@ -1,7 +1,8 @@
{
"semi": false,
"trailingComma": "es5",
"trailingComma": "all",
"singleQuote": true,
"tabWidth": 2,
"printWidth": 120
"printWidth": 120,
"jsxBracketSameLine": true
}
14 changes: 7 additions & 7 deletions src/core/hooks.tsx
Expand Up @@ -27,7 +27,7 @@ export interface Loader<T> extends THREE.Loader {
url: string,
onLoad?: (result: T) => void,
onProgress?: (event: ProgressEvent) => void,
onError?: (event: ErrorEvent) => void
onError?: (event: ErrorEvent) => void,
): unknown
}

Expand Down Expand Up @@ -72,10 +72,10 @@ function loadingFn<T>(extensions?: Extensions, onProgress?: (event: ProgressEven
res(data)
},
onProgress,
(error) => reject(error.message ?? `failure loading ${input}`)
)
)
)
(error) => reject(error.message ?? `failure loading ${input}`),
),
),
),
)
}
}
Expand All @@ -88,7 +88,7 @@ export function useLoader<T, U extends string | string[]>(
Proto: new () => LoaderResult<T>,
input: U,
extensions?: Extensions,
onProgress?: (event: ProgressEvent<EventTarget>) => void
onProgress?: (event: ProgressEvent<EventTarget>) => void,
): U extends any[] ? BranchingReturn<T, GLTF, GLTF & ObjectMap>[] : BranchingReturn<T, GLTF, GLTF & ObjectMap> {
// Use suspense to load async assets
const keys = (Array.isArray(input) ? input : [input]) as string[]
Expand All @@ -102,7 +102,7 @@ export function useLoader<T, U extends string | string[]>(
useLoader.preload = function <T, U extends string | string[]>(
Proto: new () => LoaderResult<T>,
input: U,
extensions?: Extensions
extensions?: Extensions,
) {
const keys = (Array.isArray(input) ? input : [input]) as string[]
return useAsset.preload(loadingFn<T>(extensions), Proto, ...keys)
Expand Down
10 changes: 4 additions & 6 deletions src/core/renderer.ts
Expand Up @@ -76,7 +76,7 @@ let extend = (objects: object): void => void (catalogue = { ...catalogue, ...obj

function createRenderer<TCanvas>(
roots: Map<TCanvas, Root>,
invalidate: (state?: boolean | RootState, frames?: number) => void
invalidate: (state?: boolean | RootState, frames?: number) => void,
) {
function applyProps(instance: Instance, newProps: InstanceProps, oldProps: InstanceProps = {}, accumulative = false) {
// Filter equals, events and reserved props
Expand Down Expand Up @@ -432,7 +432,7 @@ function createRenderer<TCanvas>(
type: string,
oldProps: InstanceProps,
newProps: InstanceProps,
fiber: Reconciler.Fiber
fiber: Reconciler.Fiber,
) {
if (instance.__instance && newProps.object && newProps.object !== instance) {
// <instance object={...} /> where the object reference has changed
Expand All @@ -445,7 +445,7 @@ function createRenderer<TCanvas>(
const hasNewArgs = argsNew.some((value: any, index: number) =>
is.obj(value)
? Object.entries(value).some(([key, val]) => val !== argsOld[index][key])
: value !== argsOld[index]
: value !== argsOld[index],
)
if (hasNewArgs) {
// Next we create a new instance and append it again
Expand All @@ -470,9 +470,7 @@ function createRenderer<TCanvas>(
}
},
hideTextInstance() {
throw new Error(
'Text is not allowed in the react-three-fibre tree. You may have extraneous whitespace between components.'
)
throw new Error('Text is not allowed in the react-three-fiber tree.')
},
getPublicInstance(instance: any) {
return instance
Expand Down
8 changes: 4 additions & 4 deletions src/core/store.ts
Expand Up @@ -109,7 +109,7 @@ const context = React.createContext<UseStore<RootState>>((null as unknown) as Us
const createStore = (
applyProps: (instance: Instance, newProps: InstanceProps, oldProps?: InstanceProps, accumulative?: boolean) => void,
invalidate: (state?: boolean | RootState, frames?: number) => void,
props: StoreProps
props: StoreProps,
): UseStore<RootState> => {
const {
gl,
Expand Down Expand Up @@ -173,7 +173,7 @@ const createStore = (
function getCurrentViewport(
camera: Camera = get().camera,
target: THREE.Vector3 = defaultTarget,
size: Size = get().size
size: Size = get().size,
) {
const { width, height } = size
const aspect = width / height
Expand Down Expand Up @@ -221,7 +221,7 @@ const createStore = (
// Go back to upper bound performance after a while unless something regresses meanwhile
performanceTimeout = setTimeout(
() => setPerformanceCurrent(get().performance.max),
get().performance.debounce
get().performance.debounce,
)
},
setMax: (max: number) => set((state) => ({ performance: { ...state.performance, max: Math.min(1, max) } })),
Expand Down Expand Up @@ -313,7 +313,7 @@ const createStore = (
// Update state model
},
(state) => [state.viewport.pixelRatio, state.size],
shallow
shallow,
)

// Invalidate on any change
Expand Down
2 changes: 1 addition & 1 deletion src/index.tsx
@@ -1 +1 @@
export * from './web'
export * from './web'
51 changes: 23 additions & 28 deletions src/three-types.ts
Expand Up @@ -14,9 +14,9 @@ type Args<T> = T extends new (...args: any) => any ? ConstructorParameters<T> :

export type Euler = THREE.Euler | Parameters<THREE.Euler['set']>
export type Matrix4 = THREE.Matrix4 | Parameters<THREE.Matrix4['set']>
export type Vector2 = THREE.Vector2 | Parameters<THREE.Vector2['set']> | Parameters<THREE.Vector2['setScalar']>[0]
export type Vector3 = THREE.Vector3 | Parameters<THREE.Vector3['set']> | Parameters<THREE.Vector3['setScalar']>[0]
export type Vector4 = THREE.Vector4 | Parameters<THREE.Vector4['set']> | Parameters<THREE.Vector4['setScalar']>[0]
export type Vector2 = THREE.Vector2 | Parameters<THREE.Vector2['set']> | Parameters<THREE.Vector2['setScalar']>[0]
export type Vector3 = THREE.Vector3 | Parameters<THREE.Vector3['set']> | Parameters<THREE.Vector3['setScalar']>[0]
export type Vector4 = THREE.Vector4 | Parameters<THREE.Vector4['set']> | Parameters<THREE.Vector4['setScalar']>[0]
export type Color = THREE.Color | number | string // Parameters<T> will not work here because of multiple function signatures in three.js types
export type Layers = THREE.Layers | Parameters<THREE.Layers['set']>
export type Quaternion = THREE.Quaternion | Parameters<THREE.Quaternion['set']>
Expand Down Expand Up @@ -66,7 +66,6 @@ export type Object3DNode<T, P> = Overwrite<
> &
EventHandlers

export type GeometryNode<T extends THREE.Geometry, P> = Overwrite<Node<T, P>, { vertices?: Vector3[] }>
export type BufferGeometryNode<T extends THREE.BufferGeometry, P> = Overwrite<Node<T, P>, {}>
export type MaterialNode<T extends THREE.Material, P> = Overwrite<Node<T, P>, { color?: Color }>
export type LightNode<T extends THREE.Light, P> = Overwrite<Object3DNode<T, P>, { color?: Color }>
Expand Down Expand Up @@ -97,7 +96,6 @@ export type OrthographicCameraProps = Object3DNode<THREE.OrthographicCamera, typ
export type CubeCameraProps = Object3DNode<THREE.CubeCamera, typeof THREE.CubeCamera>
export type ArrayCameraProps = Object3DNode<THREE.ArrayCamera, typeof THREE.ArrayCamera>

export type GeometryProps = GeometryNode<THREE.Geometry, typeof THREE.Geometry>
export type InstancedBufferGeometryProps = BufferGeometryNode<
THREE.InstancedBufferGeometry,
typeof THREE.InstancedBufferGeometry
Expand Down Expand Up @@ -157,27 +155,27 @@ export type TorusKnotBufferGeometryProps = BufferGeometryNode<
>
export type TubeBufferGeometryProps = BufferGeometryNode<THREE.TubeBufferGeometry, typeof THREE.TubeBufferGeometry>
export type WireframeGeometryProps = BufferGeometryNode<THREE.WireframeGeometry, typeof THREE.WireframeGeometry>
export type ParametricGeometryProps = GeometryNode<THREE.ParametricGeometry, typeof THREE.ParametricGeometry>
export type TetrahedronGeometryProps = GeometryNode<THREE.TetrahedronGeometry, typeof THREE.TetrahedronGeometry>
export type OctahedronGeometryProps = GeometryNode<THREE.OctahedronGeometry, typeof THREE.OctahedronGeometry>
export type IcosahedronGeometryProps = GeometryNode<THREE.IcosahedronGeometry, typeof THREE.IcosahedronGeometry>
export type DodecahedronGeometryProps = GeometryNode<THREE.DodecahedronGeometry, typeof THREE.DodecahedronGeometry>
export type PolyhedronGeometryProps = GeometryNode<THREE.PolyhedronGeometry, typeof THREE.PolyhedronGeometry>
export type TubeGeometryProps = GeometryNode<THREE.TubeGeometry, typeof THREE.TubeGeometry>
export type TorusKnotGeometryProps = GeometryNode<THREE.TorusKnotGeometry, typeof THREE.TorusKnotGeometry>
export type TorusGeometryProps = GeometryNode<THREE.TorusGeometry, typeof THREE.TorusGeometry>
export type TextGeometryProps = GeometryNode<THREE.TextGeometry, typeof THREE.TextGeometry>
export type SphereGeometryProps = GeometryNode<THREE.SphereGeometry, typeof THREE.SphereGeometry>
export type RingGeometryProps = GeometryNode<THREE.RingGeometry, typeof THREE.RingGeometry>
export type PlaneGeometryProps = GeometryNode<THREE.PlaneGeometry, typeof THREE.PlaneGeometry>
export type LatheGeometryProps = GeometryNode<THREE.LatheGeometry, typeof THREE.LatheGeometry>
export type ShapeGeometryProps = GeometryNode<THREE.ShapeGeometry, typeof THREE.ShapeGeometry>
export type ExtrudeGeometryProps = GeometryNode<THREE.ExtrudeGeometry, typeof THREE.ExtrudeGeometry>
export type ParametricGeometryProps = BufferGeometryNode<THREE.ParametricGeometry, typeof THREE.ParametricGeometry>
export type TetrahedronGeometryProps = BufferGeometryNode<THREE.TetrahedronGeometry, typeof THREE.TetrahedronGeometry>
export type OctahedronGeometryProps = BufferGeometryNode<THREE.OctahedronGeometry, typeof THREE.OctahedronGeometry>
export type IcosahedronGeometryProps = BufferGeometryNode<THREE.IcosahedronGeometry, typeof THREE.IcosahedronGeometry>
export type DodecahedronGeometryProps = BufferGeometryNode<THREE.DodecahedronGeometry, typeof THREE.DodecahedronGeometry>
export type PolyhedronGeometryProps = BufferGeometryNode<THREE.PolyhedronGeometry, typeof THREE.PolyhedronGeometry>
export type TubeGeometryProps = BufferGeometryNode<THREE.TubeGeometry, typeof THREE.TubeGeometry>
export type TorusKnotGeometryProps = BufferGeometryNode<THREE.TorusKnotGeometry, typeof THREE.TorusKnotGeometry>
export type TorusGeometryProps = BufferGeometryNode<THREE.TorusGeometry, typeof THREE.TorusGeometry>
export type TextGeometryProps = BufferGeometryNode<THREE.TextGeometry, typeof THREE.TextGeometry>
export type SphereGeometryProps = BufferGeometryNode<THREE.SphereGeometry, typeof THREE.SphereGeometry>
export type RingGeometryProps = BufferGeometryNode<THREE.RingGeometry, typeof THREE.RingGeometry>
export type PlaneGeometryProps = BufferGeometryNode<THREE.PlaneGeometry, typeof THREE.PlaneGeometry>
export type LatheGeometryProps = BufferGeometryNode<THREE.LatheGeometry, typeof THREE.LatheGeometry>
export type ShapeGeometryProps = BufferGeometryNode<THREE.ShapeGeometry, typeof THREE.ShapeGeometry>
export type ExtrudeGeometryProps = BufferGeometryNode<THREE.ExtrudeGeometry, typeof THREE.ExtrudeGeometry>
export type EdgesGeometryProps = BufferGeometryNode<THREE.EdgesGeometry, typeof THREE.EdgesGeometry>
export type ConeGeometryProps = GeometryNode<THREE.ConeGeometry, typeof THREE.ConeGeometry>
export type CylinderGeometryProps = GeometryNode<THREE.CylinderGeometry, typeof THREE.CylinderGeometry>
export type CircleGeometryProps = GeometryNode<THREE.CircleGeometry, typeof THREE.CircleGeometry>
export type BoxGeometryProps = GeometryNode<THREE.BoxGeometry, typeof THREE.BoxGeometry>
export type ConeGeometryProps = BufferGeometryNode<THREE.ConeGeometry, typeof THREE.ConeGeometry>
export type CylinderGeometryProps = BufferGeometryNode<THREE.CylinderGeometry, typeof THREE.CylinderGeometry>
export type CircleGeometryProps = BufferGeometryNode<THREE.CircleGeometry, typeof THREE.CircleGeometry>
export type BoxGeometryProps = BufferGeometryNode<THREE.BoxGeometry, typeof THREE.BoxGeometry>

export type MaterialProps = MaterialNode<THREE.Material, [THREE.MaterialParameters]>
export type ShadowMaterialProps = MaterialNode<THREE.ShadowMaterial, [THREE.ShaderMaterialParameters]>
Expand Down Expand Up @@ -250,7 +248,6 @@ export type Matrix4Props = Node<THREE.Matrix4, typeof THREE.Matrix4>
export type QuaternionProps = Node<THREE.Quaternion, typeof THREE.Quaternion>
export type BufferAttributeProps = Node<THREE.BufferAttribute, typeof THREE.BufferAttribute>
export type InstancedBufferAttributeProps = Node<THREE.InstancedBufferAttribute, typeof THREE.InstancedBufferAttribute>
export type Face3Props = Node<THREE.Face3, typeof THREE.Face3>
export type ColorProps = Node<THREE.Color, typeof THREE.Color>
export type FogProps = Node<THREE.Fog, typeof THREE.Fog>

Expand Down Expand Up @@ -286,7 +283,6 @@ declare global {
arrayCamera: ArrayCameraProps

// geometry
geometry: GeometryProps
instancedBufferGeometry: InstancedBufferGeometryProps
bufferGeometry: BufferGeometryProps
boxBufferGeometry: BoxBufferGeometryProps
Expand Down Expand Up @@ -406,7 +402,6 @@ declare global {
quaternion: QuaternionProps
bufferAttribute: BufferAttributeProps
instancedBufferAttribute: InstancedBufferAttributeProps
face3: Face3Props
color: ColorProps
fog: FogProps
}
Expand Down
4 changes: 2 additions & 2 deletions src/web/events.ts
Expand Up @@ -197,8 +197,8 @@ function createEvents(store: UseStore<RootState>) {
// This is onPointerMove, we're only interested in events that exhibit this particular event
(objects: any) =>
objects.filter((obj: any) =>
['Move', 'Over', 'Enter', 'Out', 'Leave'].some((name) => (obj as any).__r3f.handlers['pointer' + name])
)
['Move', 'Over', 'Enter', 'Out', 'Leave'].some((name) => (obj as any).__r3f.handlers['pointer' + name]),
),
)

// Take care of unhover
Expand Down
4 changes: 2 additions & 2 deletions src/web/index.tsx
Expand Up @@ -18,7 +18,7 @@ const { reconciler, applyProps } = createRenderer(roots, invalidate)

const createRendererInstance = (
gl: THREE.WebGLRenderer | THREE.WebGLRendererParameters | undefined,
canvas: HTMLCanvasElement
canvas: HTMLCanvasElement,
) =>
isRenderer(gl as THREE.WebGLRenderer)
? (gl as THREE.WebGLRenderer)
Expand Down Expand Up @@ -114,7 +114,7 @@ function createPortal(children: React.ReactNode, container: any, impl?: any, key

reconciler.injectIntoDevTools({
bundleType: process.env.NODE_ENV === 'production' ? 0 : 1,
rendererPackageName: "react-three-fiber",
rendererPackageName: 'react-three-fiber',
// @ts-ignore
version: R3F_VERSION,
})
Expand Down

0 comments on commit 4d48c57

Please sign in to comment.