@realsee/five
Version:
Realsee Renderer SDK
78 lines (77 loc) • 3.83 kB
TypeScript
import * as React from "react";
import * as THREE from "three";
import { Five, FiveInitArgs, FiveLoadOptions, Work, Works, State } from "@realsee/five";
type FiveProviderPropTypes = {
work?: Work | Work[];
initialWork?: Work | Work[];
initialState?: "inherit" | "initial" | Partial<Omit<State, "offset">>;
initialOptions?: number | FiveLoadOptions;
initialUserAction?: boolean;
onWorksChange?: (works: Works) => void;
onStateChange?: (state: State, userAction: boolean) => void;
onCurrentStateChange?: (state: State, userAction: boolean) => void;
onError?: (error: Error) => void;
children: React.ReactNode;
};
declare function createFiveProvider(fiveInitArgs?: Omit<FiveInitArgs, "renderer" | "scissor">): {
new (props: FiveProviderPropTypes): {
/**
* five 实例,可以通过 FiveProvider 的 ref.five 获取得到
* 在一些外部调用方面可以尝试使用
*/
five: Five;
__fiveEventDisposers: (() => void)[];
__fiveDisposeTimer: any;
loadWork(works: Work | Work[], state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, options?: number | FiveLoadOptions, userAction?: boolean): Promise<void>;
shouldComponentUpdate(nextProps: FiveProviderPropTypes): boolean;
componentDidMount(): void;
componentWillUnmount(): void;
render(): React.FunctionComponentElement<React.ProviderProps<{
renderer?: THREE.WebGLRenderer;
five: Five;
loadWork: (works: Work | Work[], state?: "inherit" | "initial" | Partial<Omit<State, "offset">>, options?: number | FiveLoadOptions, userAction?: boolean) => Promise<void>;
} | null>>;
context: any;
setState<K extends "renderer">(state: {
renderer?: THREE.WebGLRenderer;
} | ((prevState: Readonly<{
renderer?: THREE.WebGLRenderer;
}>, props: Readonly<FiveProviderPropTypes>) => {
renderer?: THREE.WebGLRenderer;
} | Pick<{
renderer?: THREE.WebGLRenderer;
}, K> | null) | Pick<{
renderer?: THREE.WebGLRenderer;
}, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly<FiveProviderPropTypes> & Readonly<{
children?: React.ReactNode | undefined;
}>;
state: Readonly<{
renderer?: THREE.WebGLRenderer;
}>;
refs: {
[key: string]: React.ReactInstance;
};
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly<FiveProviderPropTypes>, prevState: Readonly<{
renderer?: THREE.WebGLRenderer;
}>): any;
componentDidUpdate?(prevProps: Readonly<FiveProviderPropTypes>, prevState: Readonly<{
renderer?: THREE.WebGLRenderer;
}>, snapshot?: any): void;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly<FiveProviderPropTypes>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<FiveProviderPropTypes>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly<FiveProviderPropTypes>, nextState: Readonly<{
renderer?: THREE.WebGLRenderer;
}>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly<FiveProviderPropTypes>, nextState: Readonly<{
renderer?: THREE.WebGLRenderer;
}>, nextContext: any): void;
};
contextType?: React.Context<any> | undefined;
};
type FiveProviderType = ReturnType<typeof createFiveProvider>;
export { createFiveProvider, FiveProviderType, FiveProviderPropTypes };