Skip to content

Commit b21dcd7

Browse files
authored
Merge pull request #24 from infeng/master
add callback when animation start and end
2 parents df612aa + 6d1082d commit b21dcd7

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/QueueAnim.jsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ class QueueAnim extends React.Component {
349349
delay: interval * order + delay,
350350
duration,
351351
easing: this.getVelocityEasing(key, i)[1],
352-
begin: this.leaveBegin.bind(this),
352+
begin: this.leaveBegin.bind(this, key),
353353
complete: this.leaveComplete.bind(this, key),
354354
});
355355
}
@@ -371,9 +371,10 @@ class QueueAnim extends React.Component {
371371
elements.forEach((elem) => {
372372
elem.className = elem.className.replace(this.props.animatingClassName[0], '').trim();
373373
});
374+
this.props.onEnd({ key, type: 'enter' });
374375
}
375376

376-
leaveBegin(elements) {
377+
leaveBegin(key, elements) {
377378
elements.forEach((elem) => {
378379
const animatingClassName = this.props.animatingClassName;
379380
elem.className = elem.className.replace(animatingClassName[0], '');
@@ -404,6 +405,7 @@ class QueueAnim extends React.Component {
404405
elements.forEach((elem) => {
405406
elem.className = elem.className.replace(this.props.animatingClassName[1], '').trim();
406407
});
408+
this.props.onEnd({ key, type: 'leave' });
407409
}
408410

409411
render() {
@@ -431,6 +433,7 @@ class QueueAnim extends React.Component {
431433
'leaveReverse',
432434
'animatingClassName',
433435
'enterForcedRePlay',
436+
'onEnd',
434437
].forEach(key => delete tagProps[key]);
435438
return createElement(this.props.component, { ...tagProps }, childrenToRender);
436439
}
@@ -455,6 +458,7 @@ QueueAnim.propTypes = {
455458
leaveReverse: React.PropTypes.bool,
456459
enterForcedRePlay: React.PropTypes.bool,
457460
animatingClassName: React.PropTypes.array,
461+
onEnd: React.PropTypes.func,
458462
};
459463

460464
QueueAnim.defaultProps = {
@@ -468,6 +472,7 @@ QueueAnim.defaultProps = {
468472
leaveReverse: false,
469473
enterForcedRePlay: false,
470474
animatingClassName: ['queue-anim-entering', 'queue-anim-leaving'],
475+
onEnd: noop,
471476
};
472477

473478
export default QueueAnim;

0 commit comments

Comments
 (0)