UNPKG

react-navigation-shared-element

Version:
49 lines (48 loc) 2.15 kB
import SharedElementSceneData, { SharedElementSceneEventType } from "./SharedElementSceneData"; import { SharedElementEventSubscription, SharedElementTransitionProps, Route } from "./types"; export declare type SharedElementRendererUpdateHandler = () => any; export interface ISharedElementRendererData { startTransition(closing: boolean, navigatorId: string, nestingDepth: number): void; endTransition(closing: boolean, navigatorId: string, nestingDepth: number): void; updateSceneState(sceneData: SharedElementSceneData, route: Route, sceneEvent: SharedElementSceneEventType): void; readonly nestingDepth: number; addDebugRef(): number; releaseDebugRef(): number; } /** * TODO * - [ ] Not all lifecycle events not emitted by stack when using gestures (close modal) */ export default class SharedElementRendererData implements ISharedElementRendererData { private scenes; private updateSubscribers; private sharedElements; private isShowing; private route; private prevRoute; private routeAnimValue; private scene; private prevScene; private sceneAnimValue; private isTransitionStarted; private isTransitionClosing; private transitionNavigatorId; private transitionNestingDepth; debugRefCount: number; startTransition(closing: boolean, navigatorId: string, nestingDepth: number): void; endTransition(closing: boolean, navigatorId: string, nestingDepth: number): void; updateSceneState(sceneData: SharedElementSceneData, route: Route, sceneEvent: SharedElementSceneEventType): void; addDebugRef(): number; releaseDebugRef(): number; get debug(): boolean; willFocusScene(sceneData: SharedElementSceneData, route: Route): void; didFocusScene(sceneData: SharedElementSceneData, route: Route): void; private registerScene; private updateSceneListeners; private getScene; private updateSharedElements; addUpdateListener(handler: SharedElementRendererUpdateHandler): SharedElementEventSubscription; private emitUpdateEvent; getTransitions(): SharedElementTransitionProps[]; get nestingDepth(): number; }