UNPKG

@tamagui/react-native-web-lite

Version:
86 lines (85 loc) 2.33 kB
import Platform from "../../../exports/Platform"; import UIManager from "../../../exports/UIManager"; const __DEV__ = process.env.NODE_ENV !== "production"; function configureNext(config, onAnimationDidEnd) { Platform.isTesting || UIManager.configureNextLayoutAnimation(config, onAnimationDidEnd ?? function () {}, function () {}); } function create(duration, type, property) { return { duration, create: { type, property }, update: { type }, delete: { type, property } }; } const Presets = { easeInEaseOut: create(300, "easeInEaseOut", "opacity"), linear: create(500, "linear", "opacity"), spring: { duration: 700, create: { type: "linear", property: "opacity" }, update: { type: "spring", springDamping: 0.4 }, delete: { type: "linear", property: "opacity" } } }, LayoutAnimation = { /** * Schedules an animation to happen on the next layout. * * @param config Specifies animation properties: * * - `duration` in milliseconds * - `create`, `AnimationConfig` for animating in new views * - `update`, `AnimationConfig` for animating views that have been updated * * @param onAnimationDidEnd Called when the animation finished. * Only supported on iOS. * @param onError Called on error. Only supported on iOS. */ configureNext, /** * Helper for creating a config for `configureNext`. */ create, Types: Object.freeze({ spring: "spring", linear: "linear", easeInEaseOut: "easeInEaseOut", easeIn: "easeIn", easeOut: "easeOut", keyboard: "keyboard" }), Properties: Object.freeze({ opacity: "opacity", scaleX: "scaleX", scaleY: "scaleY", scaleXY: "scaleXY" }), checkConfig(...args) { console.error("LayoutAnimation.checkConfig(...) has been disabled."); }, Presets, easeInEaseOut: configureNext.bind(null, Presets.easeInEaseOut), linear: configureNext.bind(null, Presets.linear), spring: configureNext.bind(null, Presets.spring) }; var LayoutAnimation_default = LayoutAnimation; export { LayoutAnimation_default as default }; //# sourceMappingURL=index.mjs.map