UNPKG

@tamagui/react-native-web-lite

Version:
65 lines (64 loc) 1.91 kB
import { AnimatedValue } from "./AnimatedValue.mjs"; import { AnimatedNode } from "./AnimatedNode.mjs"; import { generateNewAnimationId, shouldUseNativeDriver } from "../NativeAnimatedHelper.mjs"; class AnimatedTracking extends AnimatedNode { _value; _parent; _callback; _animationConfig; _animationClass; _useNativeDriver; constructor(value, parent, animationClass, animationConfig, callback) { super(); this._value = value; this._parent = parent; this._animationClass = animationClass; this._animationConfig = animationConfig; this._useNativeDriver = shouldUseNativeDriver(animationConfig); this._callback = callback; this.__attach(); } __makeNative() { this.__isNative = true; this._parent.__makeNative(); super.__makeNative(); this._value.__makeNative(); } __getValue() { return this._parent.__getValue(); } __attach() { this._parent.__addChild(this); if (this._useNativeDriver) { this.__makeNative(); } } __detach() { this._parent.__removeChild(this); super.__detach(); } update() { this._value.animate(new this._animationClass({ ...this._animationConfig, toValue: this._animationConfig.toValue.__getValue() }), this._callback); } __getNativeConfig() { const animation = new this._animationClass({ ...this._animationConfig, // remove toValue from the config as it's a ref to Animated.Value toValue: void 0 }); const animationConfig = animation.__getNativeAnimationConfig(); return { type: "tracking", animationId: generateNewAnimationId(), animationConfig, toValue: this._parent.__getNativeTag(), value: this._value.__getNativeTag() }; } } var AnimatedTracking_default = AnimatedTracking; export { AnimatedTracking, AnimatedTracking_default as default }; //# sourceMappingURL=AnimatedTracking.mjs.map