Skip to content

Commit 209d7b4

Browse files
committed
fixup react 'anim' flag logic
1 parent 1cb0d5f commit 209d7b4

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

src/plot_api/plot_api.js

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2445,6 +2445,9 @@ function diffData(gd, oldFullData, newFullData, immutable, transition, newDataRe
24452445

24462446
var flags = editTypes.traceFlags();
24472447
flags.arrays = {};
2448+
flags.nChanges = 0;
2449+
flags.nChangesAnim = 0;
2450+
24482451
var i, trace;
24492452

24502453
function getTraceValObject(parts) {
@@ -2456,6 +2459,8 @@ function diffData(gd, oldFullData, newFullData, immutable, transition, newDataRe
24562459
flags: flags,
24572460
immutable: immutable,
24582461
transition: transition,
2462+
nChanges: 0,
2463+
nChangesAnim: 0,
24592464
newDataRevision: newDataRevision,
24602465
gd: gd
24612466
};
@@ -2475,6 +2480,10 @@ function diffData(gd, oldFullData, newFullData, immutable, transition, newDataRe
24752480
flags.fullReplot = true;
24762481
}
24772482

2483+
if(transition && flags.nChanges && flags.nChangesAnim) {
2484+
flags.anim = flags.nChanges === flags.nChangesAnim ? 'all' : 'some';
2485+
}
2486+
24782487
return flags;
24792488
}
24802489

@@ -2483,6 +2492,8 @@ function diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition) {
24832492
flags.arrays = {};
24842493
flags.rangesAltered = {};
24852494
flags.autorangedAxes = {};
2495+
flags.nChanges = 0;
2496+
flags.nChangesAnim = 0;
24862497

24872498
function getLayoutValObject(parts) {
24882499
return PlotSchema.getLayoutValObject(newFullLayout, parts);
@@ -2502,6 +2513,10 @@ function diffLayout(gd, oldFullLayout, newFullLayout, immutable, transition) {
25022513
flags.layoutReplot = true;
25032514
}
25042515

2516+
if(transition && flags.nChanges && flags.nChangesAnim) {
2517+
flags.anim = flags.nChanges === flags.nChangesAnim ? 'all' : 'some';
2518+
}
2519+
25052520
return flags;
25062521
}
25072522

@@ -2521,14 +2536,11 @@ function getDiffFlags(oldContainer, newContainer, outerparts, opts) {
25212536
return;
25222537
}
25232538
editTypes.update(flags, valObject);
2539+
flags.nChanges++;
25242540

25252541
// track animatable changes
2526-
if(opts.transition) {
2527-
if(flags.anim === 'all' && !valObject.anim) {
2528-
flags.anim = 'some';
2529-
} else if(!flags.anim && valObject.anim) {
2530-
flags.anim = 'all';
2531-
}
2542+
if(opts.transition && valObject.anim) {
2543+
flags.nChangesAnim++;
25322544
}
25332545

25342546
// track cartesian axes with altered ranges

0 commit comments

Comments
 (0)