From 6ac4de32e654930d99c15b4e401a634a8eea82e7 Mon Sep 17 00:00:00 2001 From: Wilker Lucio Date: Wed, 19 Dec 2018 09:37:19 -0200 Subject: [PATCH] Send query to pre-merge --- src/main/fulcro/client/primitives.cljc | 10 ++++++---- src/test/fulcro/client/primitives_spec.cljc | 8 ++++---- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/main/fulcro/client/primitives.cljc b/src/main/fulcro/client/primitives.cljc index e54afa56e..e03065521 100644 --- a/src/main/fulcro/client/primitives.cljc +++ b/src/main/fulcro/client/primitives.cljc @@ -956,7 +956,6 @@ (recur (next q) (assoc ret k x)))) ;; normalize many - (and (vector? v) (not (util/ident? v)) (not (util/ident? (first v)))) (let [xs (into [] (map #(normalize* sel % refs union-entry transform)) v)] (if-not (or (nil? class) (not #?(:clj (-> class meta :ident) @@ -1570,12 +1569,15 @@ target source)) -(defn component-pre-merge [class state data] +(defn component-pre-merge [class query state data] (if (has-pre-merge? class) (let [entity (if #?(:clj (-> class meta :ident) :cljs (implements? Ident class)) (get-in state (get-ident class data)))] - (pre-merge class {:state-map state :current-normalized entity :data-tree data})) + (pre-merge class {:state-map state + :current-normalized entity + :data-tree data + :query query})) data)) (defn pre-merge-transform @@ -1583,7 +1585,7 @@ [state] (fn pre-merge-transform-internal [query data] (if-let [class (-> query meta :component)] - (component-pre-merge class state data) + (component-pre-merge class query state data) data))) (defn merge-handler diff --git a/src/test/fulcro/client/primitives_spec.cljc b/src/test/fulcro/client/primitives_spec.cljc index 7d0b16683..455f07c82 100644 --- a/src/test/fulcro/client/primitives_spec.cljc +++ b/src/test/fulcro/client/primitives_spec.cljc @@ -2093,10 +2093,10 @@ #?(:cljs (assertions - (prim/merge-component {} MPersonPM (person :wilker "Wilker" [(phone-number 55 "98765-4321")])) - => {:person/by-id {:wilker {:id :wilker - :name "Wilker" - :numbers [[:phone/by-id 55]]}} + (prim/merge-component {} MPersonPM (person :mary "Mary" [(phone-number 55 "98765-4321")])) + => {:person/by-id {:mary {:id :mary + :name "Mary" + :numbers [[:phone/by-id 55]]}} :phone/by-id {55 {:id 55 :number "98765-4321" :ui/initial-flag :start}}}