react-native-micro-interactions
Version:
Effortlessly enhance your React Native components with subtle micro-interactions and animations.
62 lines (61 loc) • 1.9 kB
JavaScript
;
function filterClickAnimOptions(config, props) {
if (props == null) {
return config;
}
let animationOptions = {
shrink: props.shrink ?? config.shrink,
shrinkDuration: Math.abs(props.shrinkDuration ?? config.shrinkDuration)
};
if (animationOptions.shrink < 0 || animationOptions.shrink > 1) {
animationOptions.shrink = config.shrink;
}
return animationOptions;
}
function filterPopInAnimOptions(config, props) {
if (props == null) {
return config;
}
let animationOptions = {
duration: Math.abs(props.duration ?? config.duration),
withBounce: props.withBounce ?? config.withBounce
};
return animationOptions;
}
function filterDropInAnimOptions(config, props) {
if (props == null) {
return config;
}
let animationOptions = {
duration: Math.abs(props.duration ?? config.duration),
withBounce: props.withBounce ?? config.withBounce,
damping: Math.abs(props.damping ?? config.damping)
};
return animationOptions;
}
function filterBuzzAnimOptions(config, props) {
if (props == null) {
return config;
}
let animationOptions = {
frequency: Math.abs(props.frequency ?? config.frequency),
rotation: Math.abs(props.rotation ?? config.rotation),
duration: Math.abs(props.duration ?? config.rotation)
};
if (animationOptions.rotation < 0 || animationOptions.rotation > 360) {
animationOptions.rotation = config.rotation;
}
return animationOptions;
}
function filterTextSlideAnimOptions(config, props) {
if (props == null) {
return config;
}
let animationOptions = {
duration: Math.abs(props.duration ?? config.duration),
offset: props.offset ?? config.offset
};
return animationOptions;
}
export { filterClickAnimOptions, filterBuzzAnimOptions, filterPopInAnimOptions, filterTextSlideAnimOptions, filterDropInAnimOptions };
//# sourceMappingURL=animOptionsFilter.js.map