diff --git a/src/reagent/impl/util.cljs b/src/reagent/impl/util.cljs index b3920c6..af28b93 100644 --- a/src/reagent/impl/util.cljs +++ b/src/reagent/impl/util.cljs @@ -147,7 +147,9 @@ rst))) (defn- merge-class [p1 p2] - (assoc p2 :class (class-names (:class p1) (:class p2)))) + (if (or (contains? p1 :class) (contains? p2 :class)) + (assoc p2 :class (class-names (:class p1) (:class p2))) + p2)) (defn- merge-style [p1 p2] (let [style (when-let [s1 (:style p1)] diff --git a/test/reagent/impl/util_test.cljs b/test/reagent/impl/util_test.cljs index 3c312bf..01f3499 100644 --- a/test/reagent/impl/util_test.cljs +++ b/test/reagent/impl/util_test.cljs @@ -56,6 +56,11 @@ (util/merge-props {:disabled true :style {:flex 1} :class "foo"} {:disabled false :style {:flex-direction "row"} :class "bar"})))) + (testing "two arguments without classes" + (is (= {:disabled false :style {:flex 1 :flex-direction "row"}} + (util/merge-props {:disabled true :style {:flex 1}} + {:disabled false :style {:flex-direction "row"}})))) + (testing "n arguments" (is (= {:disabled false :checked true