From 38dee6ee8efa507f2218cf7e7cf3e0b71aa6a2c5 Mon Sep 17 00:00:00 2001 From: gered Date: Mon, 30 May 2016 18:59:32 -0400 Subject: [PATCH] can just swap directly into view-data here, no need for a cursor i think i was originally worried that swapping into view-data directly would cause unnecessary component re-renders, but that should not ever happen because application code should not be dereferencing view-data directly (should always be using cursors). --- .../src/reagent_data_views/client/core.cljs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/reagent-data-views/src/reagent_data_views/client/core.cljs b/reagent-data-views/src/reagent_data_views/client/core.cljs index 46b839e..f87a2f4 100644 --- a/reagent-data-views/src/reagent_data_views/client/core.cljs +++ b/reagent-data-views/src/reagent_data_views/client/core.cljs @@ -31,10 +31,13 @@ (r/cursor view-data [view-sig :data])) (defn- handle-view-refresh [[view-sig data]] - (let [cursor (r/cursor view-data [view-sig])] - (swap! cursor - #(assoc % :loading false - :data data)))) + (swap! view-data + (fn [view-data] + (if (contains? view-data view-sig) + (update-in view-data [view-sig] assoc + :loading false + :data data) + view-data)))) (defn subscribed? "Returns true if we are currently subscribed to the specified view."