react-native-reanimated
Version:
More powerful alternative to Animated library for React Native.
32 lines (30 loc) • 1.08 kB
JavaScript
;
import { CSSKeyframesRuleImpl } from '../platform';
import { isCSSKeyframesRule } from "../utils/index.js";
function parseAnimationName(animationName) {
if (typeof animationName !== 'object') {
return;
}
const keyframesArray = Array.isArray(animationName) ? animationName : [animationName];
return keyframesArray.map(keyframes => isCSSKeyframesRule(keyframes) ? keyframes :
// `CSSStyle` defaults to the `DefaultStyle` union, so a bare
// `animationName` is a union of per-style keyframes. Pin the type
// argument so inference doesn't collapse it to a single style type.
new CSSKeyframesRuleImpl(keyframes));
}
export const create = styles => {
// TODO - implement more optimizations and correctness checks in dev here
for (const key in styles) {
const style = styles[key];
if (style.animationName) {
style.animationName = parseAnimationName(style.animationName);
}
}
if (__DEV__) {
for (const key in styles) {
Object.freeze(styles[key]);
}
}
return styles;
};
//# sourceMappingURL=stylesheet.js.map