Browse Source

enhance(rtc): simpler way to sort datoms

rcmerci 2 years ago
parent
commit
bfc08e7326
1 changed files with 4 additions and 15 deletions
  1. 4 15
      src/main/frontend/db/rtc/db_listener.cljs

+ 4 - 15
src/main/frontend/db/rtc/db_listener.cljs

@@ -155,23 +155,12 @@
                      (prn ::add-ops ops)
                      (prn ::add-ops ops)
                      (<! (op/<add-ops! repo ops))))))))
                      (<! (op/<add-ops! repo ops))))))))
 
 
-(defn- sort-entity-datoms-coll
-  [entity-datoms-coll]
-  (let [id->datoms
-        (into {}
-              (keep (fn [datoms]
-                      (when-let [e (ffirst datoms)]
-                        [e datoms])))
-              entity-datoms-coll)]
-    (mapv second (sort-by first < id->datoms))))
-
 (defn generate-rtc-ops
 (defn generate-rtc-ops
   [repo db-before db-after datoms]
   [repo db-before db-after datoms]
-  (let [same-entity-datoms-coll (->> datoms
-                                     (map vec)
-                                     (group-by first)
-                                     vals
-                                     sort-entity-datoms-coll)
+  (let [datom-vec-coll (map vec datoms)
+        id->same-entity-datoms (group-by first datom-vec-coll)
+        id-order (distinct (map first datom-vec-coll))
+        same-entity-datoms-coll (map id->same-entity-datoms id-order)
         ops (mapcat (partial entity-datoms=>ops repo db-before db-after) same-entity-datoms-coll)]
         ops (mapcat (partial entity-datoms=>ops repo db-before db-after) same-entity-datoms-coll)]
     (when (seq ops)
     (when (seq ops)
       (swap! *ops-pending-to-store conj {:ops ops :repo repo}))))
       (swap! *ops-pending-to-store conj {:ops ops :repo repo}))))