Skip to content

Commit 91fc771

Browse files
committed
feat: let "cancel" prop have a default value
This lets you cancel all animations until { cancel: false, default: true } is merged.
1 parent 2b0f861 commit 91fc771

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

packages/core/src/SpringValue.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,15 @@ export class SpringValue<T = any> extends FrameValue<T> {
502502
protected _update(props: SpringUpdate<T>, isLoop?: boolean): AsyncResult<T> {
503503
const defaultProps = this._defaultProps
504504

505+
// Set the default `cancel` prop first, because it prevents other default
506+
// props in this update from being cached.
507+
if (props.default && !is.und(props.cancel)) {
508+
defaultProps.cancel = props.cancel
509+
}
510+
// The default `cancel` prop overrides all updates.
511+
else if (defaultProps.cancel) {
512+
props.cancel = true
513+
}
505514
// The default `pause` prop overrides all updates.
506515
if (defaultProps.pause) {
507516
props.pause = true

packages/core/src/helpers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ export const getProps = <T, Arg = never>(
5151
/** These props can have default values */
5252
export const DEFAULT_PROPS = [
5353
'pause',
54+
'cancel',
5455
'config',
5556
'immediate',
5657
'onDelayEnd',

0 commit comments

Comments
 (0)