Comparing version 2.5.1 to 2.6.0
@@ -14,2 +14,4 @@ import * as React from 'react'; | ||
}) => void; | ||
/** All motion leaves in the screen */ | ||
onAllRemoved?: () => void; | ||
} | ||
@@ -16,0 +18,0 @@ export interface CSSMotionListState { |
@@ -8,3 +8,3 @@ import _extends from "@babel/runtime/helpers/esm/extends"; | ||
import _createSuper from "@babel/runtime/helpers/esm/createSuper"; | ||
var _excluded = ["component", "children", "onVisibleChanged"], | ||
var _excluded = ["component", "children", "onVisibleChanged", "onAllRemoved"], | ||
_excluded2 = ["status"]; | ||
@@ -47,13 +47,18 @@ | ||
_this.removeKey = function (removeKey) { | ||
_this.setState(function (_ref) { | ||
var keyEntities = _ref.keyEntities; | ||
return { | ||
keyEntities: keyEntities.map(function (entity) { | ||
if (entity.key !== removeKey) return entity; | ||
return _objectSpread(_objectSpread({}, entity), {}, { | ||
status: STATUS_REMOVED | ||
}); | ||
}) | ||
}; | ||
var keyEntities = _this.state.keyEntities; | ||
var nextKeyEntities = keyEntities.map(function (entity) { | ||
if (entity.key !== removeKey) return entity; | ||
return _objectSpread(_objectSpread({}, entity), {}, { | ||
status: STATUS_REMOVED | ||
}); | ||
}); | ||
_this.setState({ | ||
keyEntities: nextKeyEntities | ||
}); | ||
return nextKeyEntities.filter(function (_ref) { | ||
var status = _ref.status; | ||
return status !== STATUS_REMOVED; | ||
}).length; | ||
}; | ||
@@ -75,2 +80,3 @@ | ||
_onVisibleChanged = _this$props.onVisibleChanged, | ||
onAllRemoved = _this$props.onAllRemoved, | ||
restProps = _objectWithoutProperties(_this$props, _excluded); | ||
@@ -100,3 +106,7 @@ | ||
if (!changedVisible) { | ||
_this2.removeKey(eventProps.key); | ||
var restKeysCount = _this2.removeKey(eventProps.key); | ||
if (restKeysCount === 0 && onAllRemoved) { | ||
onAllRemoved(); | ||
} | ||
} | ||
@@ -128,3 +138,4 @@ } | ||
}; | ||
} | ||
} // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info. | ||
}]); | ||
@@ -131,0 +142,0 @@ |
@@ -14,2 +14,4 @@ import * as React from 'react'; | ||
}) => void; | ||
/** All motion leaves in the screen */ | ||
onAllRemoved?: () => void; | ||
} | ||
@@ -16,0 +18,0 @@ export interface CSSMotionListState { |
@@ -35,3 +35,3 @@ "use strict"; | ||
var _excluded = ["component", "children", "onVisibleChanged"], | ||
var _excluded = ["component", "children", "onVisibleChanged", "onAllRemoved"], | ||
_excluded2 = ["status"]; | ||
@@ -68,13 +68,18 @@ var MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd']; | ||
_this.removeKey = function (removeKey) { | ||
_this.setState(function (_ref) { | ||
var keyEntities = _ref.keyEntities; | ||
return { | ||
keyEntities: keyEntities.map(function (entity) { | ||
if (entity.key !== removeKey) return entity; | ||
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entity), {}, { | ||
status: _diff.STATUS_REMOVED | ||
}); | ||
}) | ||
}; | ||
var keyEntities = _this.state.keyEntities; | ||
var nextKeyEntities = keyEntities.map(function (entity) { | ||
if (entity.key !== removeKey) return entity; | ||
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, entity), {}, { | ||
status: _diff.STATUS_REMOVED | ||
}); | ||
}); | ||
_this.setState({ | ||
keyEntities: nextKeyEntities | ||
}); | ||
return nextKeyEntities.filter(function (_ref) { | ||
var status = _ref.status; | ||
return status !== _diff.STATUS_REMOVED; | ||
}).length; | ||
}; | ||
@@ -95,2 +100,3 @@ | ||
_onVisibleChanged = _this$props.onVisibleChanged, | ||
onAllRemoved = _this$props.onAllRemoved, | ||
restProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded); | ||
@@ -118,3 +124,7 @@ var Component = component || React.Fragment; | ||
if (!changedVisible) { | ||
_this2.removeKey(eventProps.key); | ||
var restKeysCount = _this2.removeKey(eventProps.key); | ||
if (restKeysCount === 0 && onAllRemoved) { | ||
onAllRemoved(); | ||
} | ||
} | ||
@@ -146,3 +156,4 @@ } | ||
}; | ||
} | ||
} // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info. | ||
}]); | ||
@@ -149,0 +160,0 @@ return CSSMotionList; |
{ | ||
"name": "rc-motion", | ||
"version": "2.5.1", | ||
"version": "2.6.0", | ||
"description": "React lifecycle controlled motion library", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
91678
1950