@react-motion-router/core
Version:
Declarative routing library for ReactJS ⚛ with animations baked in ⏮
57 lines (56 loc) • 3.62 kB
TypeScript
import { AnimationConfigSet, AnimationKeyframeEffectConfig, CustomElementType, EasingFunction } from './common/types';
import AnimationKeyframePresets from './Animations';
import NavigationBase from './NavigationBase';
import { Component, ElementType } from 'react';
interface AnimationProviderProps {
onRef: (ref: HTMLElement | null) => void;
onExit: Function;
onExited: Function;
onEnter: Function;
onEntered: Function;
in: boolean;
out: boolean;
name: string;
resolvedPathname?: string;
animation: AnimationConfigSet | (() => AnimationConfigSet);
pseudoElement?: {
selector: string;
animation: AnimationConfigSet | (() => AnimationConfigSet);
};
backNavigating: boolean;
keepAlive: boolean;
children: React.ReactNode;
navigation: NavigationBase;
renderAs: ElementType | CustomElementType;
}
interface AnimationProviderState {
mounted: boolean;
zIndex: number;
}
export default class AnimationProvider extends Component<AnimationProviderProps, AnimationProviderState> {
private _animationLayerData;
private ref;
private onAnimationEnd;
private onNavigate;
private setRef;
state: AnimationProviderState;
onRef(ref: HTMLElement | null): void;
animationEnd(): void;
navigate(): void;
componentDidMount(): void;
componentDidUpdate(prevProps: AnimationProviderProps): void;
componentWillUnmount(): void;
private getAnimationConfig;
get pseudoElementInAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined] | null;
get pseudoElementOutAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined] | null;
get inAnimation(): AnimationKeyframeEffectConfig | ["none" | "slide-right-in" | "slide-back-right-in" | "slide-right-out" | "slide-back-right-out" | "slide-left-in" | "slide-back-left-in" | "slide-left-out" | "slide-back-left-out" | "slide-up-in" | "slide-back-up-in" | "slide-up-out" | "slide-back-up-out" | "slide-down-in" | "slide-back-down-in" | "slide-down-out" | "slide-back-down-out" | "zoom-in-in" | "zoom-in-out" | "zoom-out-in" | "zoom-out-out" | "fade-in" | "fade-out", number, EasingFunction | undefined];
get outAnimation(): AnimationKeyframeEffectConfig | [keyof typeof AnimationKeyframePresets, number, EasingFunction | undefined];
get pseudoElementDuration(): string | number | null | undefined;
get duration(): string | number | undefined;
get pseudoElementAnimation(): Animation | null;
get animation(): Animation | null;
set zIndex(_zIndex: number);
mounted(_mounted: boolean, willAnimate?: boolean): Promise<void>;
render(): JSX.Element;
}
export {};