aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorMaximilian Hils <git@maximilianhils.com>2018-02-05 08:21:27 +0100
committerGitHub <noreply@github.com>2018-02-05 08:21:27 +0100
commit05ae3460c018bc33999534ac2dbab8fa3a6c9c96 (patch)
treecb874f9da3baa32b14da7735938e54a7be2d29c4 /web
parent91834f98ccb1e586dabb9c269c369a094a00f2f0 (diff)
parent90d06dcf6fde398a71b54ee863e4df862746eeb3 (diff)
downloadmitmproxy-05ae3460c018bc33999534ac2dbab8fa3a6c9c96.tar.gz
mitmproxy-05ae3460c018bc33999534ac2dbab8fa3a6c9c96.tar.bz2
mitmproxy-05ae3460c018bc33999534ac2dbab8fa3a6c9c96.zip
Merge pull request #2835 from MatthewShao/mitmweb-sort
[web] Fix unstable sorting
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"