create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
39 lines (33 loc) • 1.03 kB
JavaScript
import AnimatedNode from './AnimatedNode';
import invariant from 'invariant';
import { val } from '../val';
import { adapt } from '../core/AnimatedBlock';
class AnimatedSet extends AnimatedNode {
_what;
_value;
constructor(what, value) {
invariant(
what instanceof AnimatedNode,
`Reanimated: Animated.set first argument should be of type AnimatedNode but got ${what}`
);
invariant(
value instanceof AnimatedNode,
`Reanimated: Animated.set second argument should be of type AnimatedNode, String or Number but got ${value}`
);
super({ type: 'set', what, value }, [value]);
invariant(!what._constant, 'Value to be set cannot be constant');
this._what = what;
this._value = value;
}
toString() {
return `AnimatedSet, id: ${this.__nodeID}`;
}
__onEvaluate() {
const newValue = val(this._value);
this._what.setValue(newValue);
return newValue;
}
}
export function createAnimatedSet(what, value) {
return new AnimatedSet(what, adapt(value));
}