aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorMatthew Shao <me@matshao.com>2018-02-05 08:28:02 +0800
committerMatthew Shao <me@matshao.com>2018-02-05 08:28:02 +0800
commit90d06dcf6fde398a71b54ee863e4df862746eeb3 (patch)
tree9c79a4e016c50adcb298a9f1e61ea71bf18e5636 /web
parent6d8731e144eaec2aaf2120c21969c9228b7af95a (diff)
downloadmitmproxy-90d06dcf6fde398a71b54ee863e4df862746eeb3.tar.gz
mitmproxy-90d06dcf6fde398a71b54ee863e4df862746eeb3.tar.bz2
mitmproxy-90d06dcf6fde398a71b54ee863e4df862746eeb3.zip
[web] Fix unstable sorting by using 'stable' dependency
Diffstat (limited to 'web')
-rw-r--r--web/package.json3
-rw-r--r--web/src/js/ducks/utils/store.js6
-rw-r--r--web/yarn.lock4
3 files changed, 10 insertions, 3 deletions
diff --git a/web/package.json b/web/package.json
index 31c2d6d6..77b13e8b 100644
--- a/web/package.json
+++ b/web/package.json
@@ -37,7 +37,8 @@
"redux-logger": "^3.0.6",
"redux-mock-store": "^1.3.0",
"redux-thunk": "^2.2.0",
- "shallowequal": "^1.0.2"
+ "shallowequal": "^1.0.2",
+ "stable": "^0.1.6"
},
"devDependencies": {
"babel-core": "^6.26.0",
diff --git a/web/src/js/ducks/utils/store.js b/web/src/js/ducks/utils/store.js
index ac272650..ad2242ee 100644
--- a/web/src/js/ducks/utils/store.js
+++ b/web/src/js/ducks/utils/store.js
@@ -1,3 +1,5 @@
+import stable from 'stable'
+
export const SET_FILTER = 'LIST_SET_FILTER'
export const SET_SORT = 'LIST_SET_SORT'
export const ADD = 'LIST_ADD'
@@ -35,7 +37,7 @@ export default function reduce(state = defaultState, action) {
switch (action.type) {
case SET_FILTER:
- view = list.filter(action.filter).sort(action.sort)
+ view = stable(list.filter(action.filter), action.sort)
viewIndex = {}
view.forEach((item, index) => {
viewIndex[item.id] = index
@@ -43,7 +45,7 @@ export default function reduce(state = defaultState, action) {
break
case SET_SORT:
- view = [...view].sort(action.sort)
+ view = stable([...view], action.sort)
viewIndex = {}
view.forEach((item, index) => {
viewIndex[item.id] = index
diff --git a/web/yarn.lock b/web/yarn.lock
index aa5ae85f..1930fded 100644
--- a/web/yarn.lock
+++ b/web/yarn.lock
@@ -5449,6 +5449,10 @@ sshpk@^1.7.0:
jsbn "~0.1.0"
tweetnacl "~0.14.0"
+stable@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10"
+
statuses@1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"