rc-virtual-list
Advanced tools
Comparing version 0.0.0-alpha.16 to 0.0.0-alpha.17
@@ -247,4 +247,9 @@ function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } | ||
var prevData = this.cachedProps.data || []; | ||
var changedItemIndex = prevData.length !== data.length ? findListDiffIndex(prevData, data, this.getItemKey) : null; | ||
var changedItemIndex = null; | ||
if (prevData.length !== data.length) { | ||
var diff = findListDiffIndex(prevData, data, this.getItemKey); | ||
changedItemIndex = diff ? diff.index : null; | ||
} | ||
if (disabled) { | ||
@@ -251,0 +256,0 @@ // Should trigger `onSkipRender` to tell that diff component is not render in the list |
@@ -19,2 +19,5 @@ /** | ||
*/ | ||
export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T) => string): number | null; | ||
export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T) => string): { | ||
index: number; | ||
multiple: boolean; | ||
} | null; |
@@ -43,11 +43,10 @@ /** | ||
var originLen = originList.length; | ||
var targetLen = targetList.length; // Skip if more than 1 content is diff | ||
var targetLen = targetList.length; | ||
var shortList; | ||
var longList; | ||
if (Math.abs(originLen - targetLen) !== 1) { | ||
if (originLen === 0 && targetLen === 0) { | ||
return null; | ||
} | ||
var shortList; | ||
var longList; | ||
if (originLen < targetLen) { | ||
@@ -66,3 +65,3 @@ shortList = originList; | ||
function getItemKey(item) { | ||
if (item) { | ||
if (item !== undefined) { | ||
return getKey(item); | ||
@@ -75,3 +74,4 @@ } | ||
var diffIndex = 0; | ||
var diffIndex = null; | ||
var multiple = Math.abs(originLen - targetLen) !== 1; | ||
@@ -83,3 +83,4 @@ for (var i = 0; i < longList.length; i += 1) { | ||
if (shortKey !== longKey) { | ||
diffIndex = shortKey === getItemKey(longList[i + 1]) ? i : null; | ||
diffIndex = i; | ||
multiple = multiple || shortKey !== getItemKey(longList[i + 1]); | ||
break; | ||
@@ -89,3 +90,6 @@ } | ||
return diffIndex; | ||
return diffIndex === null ? null : { | ||
index: diffIndex, | ||
multiple: multiple | ||
}; | ||
} |
@@ -263,4 +263,9 @@ "use strict"; | ||
var prevData = this.cachedProps.data || []; | ||
var changedItemIndex = prevData.length !== data.length ? (0, _algorithmUtil.findListDiffIndex)(prevData, data, this.getItemKey) : null; | ||
var changedItemIndex = null; | ||
if (prevData.length !== data.length) { | ||
var diff = (0, _algorithmUtil.findListDiffIndex)(prevData, data, this.getItemKey); | ||
changedItemIndex = diff ? diff.index : null; | ||
} | ||
if (disabled) { | ||
@@ -267,0 +272,0 @@ // Should trigger `onSkipRender` to tell that diff component is not render in the list |
@@ -19,2 +19,5 @@ /** | ||
*/ | ||
export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T) => string): number | null; | ||
export declare function findListDiffIndex<T>(originList: T[], targetList: T[], getKey: (item: T) => string): { | ||
index: number; | ||
multiple: boolean; | ||
} | null; |
@@ -52,11 +52,10 @@ "use strict"; | ||
var originLen = originList.length; | ||
var targetLen = targetList.length; // Skip if more than 1 content is diff | ||
var targetLen = targetList.length; | ||
var shortList; | ||
var longList; | ||
if (Math.abs(originLen - targetLen) !== 1) { | ||
if (originLen === 0 && targetLen === 0) { | ||
return null; | ||
} | ||
var shortList; | ||
var longList; | ||
if (originLen < targetLen) { | ||
@@ -75,3 +74,3 @@ shortList = originList; | ||
function getItemKey(item) { | ||
if (item) { | ||
if (item !== undefined) { | ||
return getKey(item); | ||
@@ -84,3 +83,4 @@ } | ||
var diffIndex = 0; | ||
var diffIndex = null; | ||
var multiple = Math.abs(originLen - targetLen) !== 1; | ||
@@ -92,3 +92,4 @@ for (var i = 0; i < longList.length; i += 1) { | ||
if (shortKey !== longKey) { | ||
diffIndex = shortKey === getItemKey(longList[i + 1]) ? i : null; | ||
diffIndex = i; | ||
multiple = multiple || shortKey !== getItemKey(longList[i + 1]); | ||
break; | ||
@@ -98,3 +99,6 @@ } | ||
return diffIndex; | ||
return diffIndex === null ? null : { | ||
index: diffIndex, | ||
multiple: multiple | ||
}; | ||
} |
{ | ||
"name": "rc-virtual-list", | ||
"version": "0.0.0-alpha.16", | ||
"version": "0.0.0-alpha.17", | ||
"description": "React Virtual List Component", | ||
@@ -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
102161
2200