« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/data/composite/data/withSortedList.js12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/data/composite/data/withSortedList.js b/src/data/composite/data/withSortedList.js
index 6b67f57e..81a06e76 100644
--- a/src/data/composite/data/withSortedList.js
+++ b/src/data/composite/data/withSortedList.js
@@ -54,13 +54,10 @@ export default templateCompositeFrom({
         [input('list')]: list,
         [input('sort')]: sortFn,
       }) {
-        const originalIndices =
-          Array.from({length: list.length}, (_, index) => index);
-
         const symbols = [];
         const symbolToIndex = new Map();
 
-        for (const index of originalIndices) {
+        for (const index of list.keys()) {
           const symbol = Symbol();
           symbols.push(symbol);
           symbolToIndex.set(symbol, index);
@@ -104,8 +101,11 @@ export default templateCompositeFrom({
           stableSortIndices.push(sourceIndex);
           sortedList.push(list[sourceIndex]);
 
-          if (stableIndex > 0 && !isEqual(symbol, symbols[stableIndex - 1])) {
-            unstableIndex++;
+          if (stableIndex > 0) {
+            const previous = symbols[stableIndex - 1];
+            if (!isEqual(symbol, previous)) {
+              unstableIndex++;
+            }
           }
 
           unstableSortIndices[sourceIndex] = unstableIndex;