@tamagui/react-native-web-lite
Version:
React Native for Web
86 lines (85 loc) • 2.33 kB
JavaScript
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