85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
export type LayoutAnimationType =
|
|
| 'spring'
|
|
| 'linear'
|
|
| 'easeInEaseOut'
|
|
| 'easeIn'
|
|
| 'easeOut'
|
|
| 'keyboard';
|
|
|
|
export type LayoutAnimationTypes = {
|
|
[type in LayoutAnimationType]: type;
|
|
};
|
|
|
|
export type LayoutAnimationProperty =
|
|
| 'opacity'
|
|
| 'scaleX'
|
|
| 'scaleY'
|
|
| 'scaleXY';
|
|
|
|
export type LayoutAnimationProperties = {
|
|
[prop in LayoutAnimationProperty]: prop;
|
|
};
|
|
|
|
export interface LayoutAnimationAnim {
|
|
duration?: number | undefined;
|
|
delay?: number | undefined;
|
|
springDamping?: number | undefined;
|
|
initialVelocity?: number | undefined;
|
|
type?: LayoutAnimationType | undefined;
|
|
property?: LayoutAnimationProperty | undefined;
|
|
}
|
|
|
|
export interface LayoutAnimationConfig {
|
|
duration: number;
|
|
create?: LayoutAnimationAnim | undefined;
|
|
update?: LayoutAnimationAnim | undefined;
|
|
delete?: LayoutAnimationAnim | undefined;
|
|
}
|
|
|
|
/** Automatically animates views to their new positions when the next layout happens.
|
|
* A common way to use this API is to call LayoutAnimation.configureNext before
|
|
* calling setState. */
|
|
export interface LayoutAnimationStatic {
|
|
/** Schedules an animation to happen on the next layout.
|
|
* @param config Specifies animation properties:
|
|
* `duration` in milliseconds
|
|
* `create`, config for animating in new views (see Anim type)
|
|
* `update`, config for animating views that have been updated (see Anim type)
|
|
* @param onAnimationDidEnd Called when the animation finished. Only supported on iOS.
|
|
*/
|
|
configureNext: (
|
|
config: LayoutAnimationConfig,
|
|
onAnimationDidEnd?: () => void,
|
|
onAnimationDidFail?: () => void,
|
|
) => void;
|
|
/** Helper for creating a config for configureNext. */
|
|
create: (
|
|
duration: number,
|
|
type?: LayoutAnimationType,
|
|
creationProp?: LayoutAnimationProperty,
|
|
) => LayoutAnimationConfig;
|
|
Types: LayoutAnimationTypes;
|
|
Properties: LayoutAnimationProperties;
|
|
configChecker: (shapeTypes: {[key: string]: any}) => any;
|
|
Presets: {
|
|
easeInEaseOut: LayoutAnimationConfig;
|
|
linear: LayoutAnimationConfig;
|
|
spring: LayoutAnimationConfig;
|
|
};
|
|
easeInEaseOut: (onAnimationDidEnd?: () => void) => void;
|
|
linear: (onAnimationDidEnd?: () => void) => void;
|
|
spring: (onAnimationDidEnd?: () => void) => void;
|
|
}
|
|
|
|
export const LayoutAnimation: LayoutAnimationStatic;
|
|
export type LayoutAnimation = LayoutAnimationStatic;
|