mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
86 lines
2.5 KiB
TypeScript
86 lines
2.5 KiB
TypeScript
import { Component } from "react";
|
|
|
|
export type EndHandler = (node: HTMLElement, done: () => void) => void;
|
|
export type EnterHandler = (node: HTMLElement, isAppearing: boolean) => void;
|
|
export type ExitHandler = (node: HTMLElement) => void;
|
|
|
|
export const UNMOUNTED = 'unmounted';
|
|
export const EXITED = 'exited';
|
|
export const ENTERING = 'entering';
|
|
export const ENTERED = 'entered';
|
|
export const EXITING = 'exiting';
|
|
|
|
export interface TransitionActions {
|
|
appear?: boolean;
|
|
enter?: boolean;
|
|
exit?: boolean;
|
|
}
|
|
|
|
export type TransitionStatus =
|
|
typeof ENTERING |
|
|
typeof ENTERED |
|
|
typeof EXITING |
|
|
typeof EXITED |
|
|
typeof UNMOUNTED;
|
|
export type TransitionChildren = React.ReactNode | ((status: TransitionStatus) => React.ReactNode);
|
|
export interface TransitionProps extends TransitionActions {
|
|
in?: boolean;
|
|
mountOnEnter?: boolean;
|
|
unmountOnExit?: boolean;
|
|
timeout: number | { enter?: number, exit?: number };
|
|
addEndListener?: EndHandler;
|
|
onEnter?: EnterHandler;
|
|
onEntering?: EnterHandler;
|
|
onEntered?: EnterHandler;
|
|
onExit?: ExitHandler;
|
|
onExiting?: ExitHandler;
|
|
onExited?: ExitHandler;
|
|
[prop: string]: any;
|
|
children?: TransitionChildren;
|
|
}
|
|
|
|
/**
|
|
* The Transition component lets you describe a transition from one component
|
|
* state to another _over time_ with a simple declarative API. Most commonly
|
|
* It's used to animate the mounting and unmounting of Component, but can also
|
|
* be used to describe in-place transition states as well.
|
|
*
|
|
* By default the `Transition` component does not alter the behavior of the
|
|
* component it renders, it only tracks "enter" and "exit" states for the components.
|
|
* It's up to you to give meaning and effect to those states. For example we can
|
|
* add styles to a component when it enters or exits:
|
|
*
|
|
* ```jsx
|
|
* import Transition from 'react-transition-group/Transition';
|
|
*
|
|
* const duration = 300;
|
|
*
|
|
* const defaultStyle = {
|
|
* transition: `opacity ${duration}ms ease-in-out`,
|
|
* opacity: 0,
|
|
* }
|
|
*
|
|
* const transitionStyles = {
|
|
* entering: { opacity: 1 },
|
|
* entered: { opacity: 1 },
|
|
* };
|
|
*
|
|
* const Fade = ({ in: inProp }) => (
|
|
* <Transition in={inProp} timeout={duration}>
|
|
* {(state) => (
|
|
* <div style={{
|
|
* ...defaultStyle,
|
|
* ...transitionStyles[state]
|
|
* }}>
|
|
* I'm A fade Transition!
|
|
* </div>
|
|
* )}
|
|
* </Transition>
|
|
* );
|
|
* ```
|
|
*
|
|
*/
|
|
declare class Transition extends Component<TransitionProps> {}
|
|
|
|
export default Transition;
|