diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2016-06-07 12:56:51 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2016-06-07 12:56:51 +1200 |
commit | 75ebd638eb6f6ed74f1f191d4f9e30277f4f2d34 (patch) | |
tree | 9bff77b84d485549f2d9cfad61a4c54b6315088d /web/src/js/ducks/utils/view.js | |
parent | e037fe05ff1f0c2893b3f51e06e0261ca4245d63 (diff) | |
parent | 80292c0ac3c9684ee945546c9b45334178518e4e (diff) | |
download | mitmproxy-75ebd638eb6f6ed74f1f191d4f9e30277f4f2d34.tar.gz mitmproxy-75ebd638eb6f6ed74f1f191d4f9e30277f4f2d34.tar.bz2 mitmproxy-75ebd638eb6f6ed74f1f191d4f9e30277f4f2d34.zip |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'web/src/js/ducks/utils/view.js')
-rw-r--r-- | web/src/js/ducks/utils/view.js | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/web/src/js/ducks/utils/view.js b/web/src/js/ducks/utils/view.js index 5535ed83..fa23efcd 100644 --- a/web/src/js/ducks/utils/view.js +++ b/web/src/js/ducks/utils/view.js @@ -43,12 +43,8 @@ const sortedRemove = (list, sortFn, item) => { } export function sortedIndexOf(list, value, sortFn) { - if (sortFn === false){ - let i = 0 - while (i < list.length && list[i].id !== value.id){ - i++ - } - return i + if (!sortFn) { + sortFn = x => 0 // This triggers the linear search for flows that have the same sort value. } let low = 0, @@ -57,7 +53,7 @@ export function sortedIndexOf(list, value, sortFn) { mid; while (low < high) { mid = (low + high) >>> 1; - if ((sortFn(list[mid]) < val) ) { + if (sortFn(list[mid]) < val) { low = mid + 1 } else { high = mid @@ -96,10 +92,12 @@ export function updateViewList(currentView, currentList, nextList, action, filte return sortedInsert(currentView, sortFn, action.item) if (isInView && !shouldBeInView) return sortedRemove(currentView, sortFn, action.item) - if (isInView && shouldBeInView && sortFn && sortFn(currentItemState) !== sortFn(nextItemState)) { + if (isInView && shouldBeInView) { let s = [...currentView] - s.sort(makeCompareFn(sortFn)) s.indexOf = x => sortedIndexOf(s, x, sortFn) + s[s.indexOf(currentItemState)] = nextItemState + if (sortFn && sortFn(currentItemState) !== sortFn(nextItemState)) + s.sort(makeCompareFn(sortFn)) return s } return currentView @@ -123,4 +121,4 @@ export function updateViewFilter(list, filterFn = defaultFilterFn, sortFn = defa filtered.indexOf = x => sortedIndexOf(filtered, x, sortFn) return filtered -}
\ No newline at end of file +} |