Skip to content

Commit 1c33df8

Browse files
committed
fix tracking bug in animatedValue
1 parent f5d2a5c commit 1c33df8

File tree

12 files changed

+18
-19
lines changed

12 files changed

+18
-19
lines changed

examples/demos/gestures/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export default class extends React.Component {
1818
<div className="item" style={{ backgroundColor: xDelta < 0 ? '#FF1C68' : '#14D790' }}>
1919
<div className="bubble" style={{ transform: `scale(${scale})`, justifySelf: xDelta < 0 ? 'end' : 'start' }} />
2020
<div className="fg" style={{ transform: `translate3d(${x}px,0,0)` }}>
21-
Slide me ...
21+
Slide me
2222
</div>
2323
</div>
2424
)}

src/animated/Animated.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class Animated {
1+
export default class Animated {
22
__attach() {}
33
__detach() {}
44
__getValue() {}
@@ -11,5 +11,3 @@ class Animated {
1111
return []
1212
}
1313
}
14-
15-
export default Animated

src/animated/AnimatedArray.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Animated from './Animated'
22
import AnimatedValue from './AnimatedValue'
33
import AnimatedWithChildren from './AnimatedWithChildren'
44

5-
export default class extends AnimatedWithChildren {
5+
export default class AnimatedArray extends AnimatedWithChildren {
66
constructor(array) {
77
super()
88
this._values = array.map(n => new AnimatedValue(n))

src/animated/AnimatedProps.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Animated from './Animated'
22
import AnimatedStyle from './AnimatedStyle'
33

4-
export default class extends Animated {
4+
export default class AnimatedProps extends Animated {
55
constructor(props, callback) {
66
super()
77
if (props.style) {

src/animated/AnimatedStyle.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import Animated from './Animated'
22
import AnimatedWithChildren from './AnimatedWithChildren'
33
import FlattenStyle from './injectable/FlattenStyle'
44

5-
export default class extends AnimatedWithChildren {
5+
export default class AnimatedStyle extends AnimatedWithChildren {
66
constructor(style) {
77
super()
88
style = FlattenStyle.current(style) || {}

src/animated/AnimatedTemplate.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Animated from './Animated'
22
import AnimatedWithChildren from './AnimatedWithChildren'
33

4-
export default class extends AnimatedWithChildren {
4+
export default class AnimatedTemplate extends AnimatedWithChildren {
55
constructor(strings, values) {
66
super()
77
this._strings = strings

src/animated/AnimatedTracking.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import Animated from './Animated'
22
import AnimatedValue from './AnimatedValue'
33

4-
export default class extends Animated {
4+
export default class AnimatedTracking extends Animated {
55
constructor(value, parent, animationClass, animationConfig, callback) {
66
super()
77
this._value = value
@@ -10,6 +10,8 @@ export default class extends Animated {
1010
this._animationConfig = animationConfig
1111
this._callback = callback
1212
this.__attach()
13+
14+
this._hey = 1
1315
}
1416

1517
__getValue() {

src/animated/AnimatedValue.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ function findAnimatedStyles(node, styles) {
3939
* mechanism at a time. Using a new mechanism (e.g. starting a new animation,
4040
* or calling `setValue`) will stop any previous ones.
4141
*/
42-
export default class extends AnimatedWithChildren {
42+
export default class AnimatedValue extends AnimatedWithChildren {
4343
constructor(value) {
4444
super()
4545
this._value = value
@@ -57,15 +57,14 @@ export default class extends AnimatedWithChildren {
5757
}
5858

5959
_flush() {
60-
if (this._animatedStyles.size === 0) findAnimatedStyles(this, this._animatedStyles)
60+
if (this._animatedStyles.size === 0 || this._tracked) findAnimatedStyles(this, this._animatedStyles)
6161
this._animatedStyles.forEach(animatedStyle => animatedStyle.update())
6262
}
6363

6464
_updateValue(value) {
6565
this._value = value
6666
this._flush()
67-
for (var key in this._listeners)
68-
this._listeners[key]({ value: this.__getValue() })
67+
for (var key in this._listeners) this._listeners[key]({ value: this.__getValue() })
6968
}
7069

7170
/**

src/animated/AnimatedWithChildren.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import Animated from './Animated'
2+
import AnimatedTracking from './AnimatedTracking'
23

3-
export default class extends Animated {
4+
export default class AnimatedWithChildren extends Animated {
45
constructor() {
56
super()
67
this._children = []
78
}
89

910
__addChild(child) {
11+
if (child instanceof AnimatedTracking) this._tracked = true
1012
if (this._children.length === 0) this.__attach()
1113
this._children.push(child)
1214
}

src/animated/Animation.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Important note: start() and stop() will only be called at most once.
22
// Once an animation has been stopped or finished its course, it will
33
// not be reused.
4-
export default class {
4+
export default class Animation {
55
start(fromValue, onUpdate, onEnd, previousAnimation) {}
66

77
stop() {}

0 commit comments

Comments
 (0)