UNPKG

2.66 kBTypeScriptView Raw
1import * as React from 'react';
2import type { MotionStatus, MotionEventHandler, MotionEndEventHandler, MotionPrepareEventHandler } from './interface';
3export declare type CSSMotionConfig = boolean | {
4 transitionSupport?: boolean;
5 /** @deprecated, no need this anymore since `rc-motion` only support latest react */
6 forwardRef?: boolean;
7};
8export declare type MotionName = string | {
9 appear?: string;
10 enter?: string;
11 leave?: string;
12 appearActive?: string;
13 enterActive?: string;
14 leaveActive?: string;
15};
16export interface CSSMotionProps {
17 motionName?: MotionName;
18 visible?: boolean;
19 motionAppear?: boolean;
20 motionEnter?: boolean;
21 motionLeave?: boolean;
22 motionLeaveImmediately?: boolean;
23 motionDeadline?: number;
24 /**
25 * Create element in view even the element is invisible.
26 * Will patch `display: none` style on it.
27 */
28 forceRender?: boolean;
29 /**
30 * Remove element when motion end. This will not work when `forceRender` is set.
31 */
32 removeOnLeave?: boolean;
33 leavedClassName?: string;
34 /** @private Used by CSSMotionList. Do not use in your production. */
35 eventProps?: object;
36 onAppearPrepare?: MotionPrepareEventHandler;
37 onEnterPrepare?: MotionPrepareEventHandler;
38 onLeavePrepare?: MotionPrepareEventHandler;
39 onAppearStart?: MotionEventHandler;
40 onEnterStart?: MotionEventHandler;
41 onLeaveStart?: MotionEventHandler;
42 onAppearActive?: MotionEventHandler;
43 onEnterActive?: MotionEventHandler;
44 onLeaveActive?: MotionEventHandler;
45 onAppearEnd?: MotionEndEventHandler;
46 onEnterEnd?: MotionEndEventHandler;
47 onLeaveEnd?: MotionEndEventHandler;
48 /** This will always trigger after final visible changed. Even if no motion configured. */
49 onVisibleChanged?: (visible: boolean) => void;
50 internalRef?: React.Ref<any>;
51 children?: (props: {
52 visible?: boolean;
53 className?: string;
54 style?: React.CSSProperties;
55 [key: string]: any;
56 }, ref: (node: any) => void) => React.ReactElement;
57}
58export interface CSSMotionState {
59 status?: MotionStatus;
60 statusActive?: boolean;
61 newStatus?: boolean;
62 statusStyle?: React.CSSProperties;
63 prevProps?: CSSMotionProps;
64}
65/**
66 * `transitionSupport` is used for none transition test case.
67 * Default we use browser transition event support check.
68 */
69export declare function genCSSMotion(config: CSSMotionConfig): React.ForwardRefExoticComponent<CSSMotionProps & {
70 ref?: React.Ref<any>;
71}>;
72declare const _default: React.ForwardRefExoticComponent<CSSMotionProps & {
73 ref?: React.Ref<any>;
74}>;
75export default _default;