From 23a63de3540fbe2db8f2426fa8f7a7dba53f0a78 Mon Sep 17 00:00:00 2001 From: Daniel Compton Date: Mon, 22 Jan 2018 16:32:08 +1300 Subject: [PATCH] Update epochs to retain --- src/day8/re_frame/trace/events.cljs | 21 ++++++++++++----- src/day8/re_frame/trace/subs.cljs | 8 +++++++ src/day8/re_frame/trace/view/settings.cljs | 27 +++++++++++----------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/day8/re_frame/trace/events.cljs b/src/day8/re_frame/trace/events.cljs index 7fc349b..45cbe3b 100644 --- a/src/day8/re_frame/trace/events.cljs +++ b/src/day8/re_frame/trace/events.cljs @@ -127,12 +127,21 @@ (rf/reg-event-db :settings/set-number-of-retained-epochs (fn [db [_ num-str]] - (let [num (js/parseInt num-str)] - (if-not (js/isNaN num) - (do - (localstorage/save! "retained-epochs" num) - (assoc-in db [:settings :number-of-epochs] num)) - db)))) + ;; TODO: this is not perfect, there is an issue in re-com + ;; where it won't update its model if it never receives another + ;; changes after it's on-change is fired. + (let [num (js/parseInt num-str) + num (if (and (not (js/isNaN num)) (pos-int? num)) + num + 30)] + (localstorage/save! "retained-epochs" num) + (assoc-in db [:settings :number-of-epochs] num)))) + +(rf/reg-event-db + :settings/low-level-trace + [(rf/path [:settings :low-level-trace])] + (fn [low-level [_ trace-type capture?]] + (assoc low-level trace-type capture?))) ;; Global diff --git a/src/day8/re_frame/trace/subs.cljs b/src/day8/re_frame/trace/subs.cljs index 2fed7a1..c6e04f5 100644 --- a/src/day8/re_frame/trace/subs.cljs +++ b/src/day8/re_frame/trace/subs.cljs @@ -40,6 +40,14 @@ (fn [settings] (:number-of-epochs settings))) +(rf/reg-sub + :settings/low-level-trace + ;; TODO: filter from traces panel + ;; TODO: eventually drop these low level traces after computing the state we need from them. + :<- [:settings/root] + (fn [settings] + (:low-level-trace settings))) + ;; App DB (rf/reg-sub diff --git a/src/day8/re_frame/trace/view/settings.cljs b/src/day8/re_frame/trace/view/settings.cljs index 0b1f73d..afe8c9b 100644 --- a/src/day8/re_frame/trace/view/settings.cljs +++ b/src/day8/re_frame/trace/view/settings.cljs @@ -95,7 +95,7 @@ :margin-right common/gs-19s} :children [(let [num-epochs @(rf/subscribe [:epochs/number-of-matches]) num-traces @(rf/subscribe [:traces/number-of-traces]) - epochs-to-retain @(rf/subscribe [:settings/number-of-retained-epochs])] + epochs-to-retain (rf/subscribe [:settings/number-of-retained-epochs])] [settings-box [[rc/h-box :align :center @@ -175,18 +175,19 @@ settings-box-131] [rc/line] - [settings-box - [[rc/label :label "Remove low level trace"] - [rc/checkbox - :model false - :label "reagent internals" - :on-change #(rf/dispatch [:settings/low-level-trace :reagent %])] - [rc/checkbox - :model false - :label "re-frame internals" - :on-change #(rf/dispatch [:settings/low-level-trace :re-frame %])]] - [[:p "Most of the time, low level trace is noisy and you want it filtered out."]] - settings-box-131] + (let [low-level-trace @(rf/subscribe [:settings/low-level-trace])] + [settings-box + [[rc/label :label "Remove low level trace"] + [rc/checkbox + :model (:reagent low-level-trace) + :label "reagent internals" + :on-change #(rf/dispatch [:settings/low-level-trace :reagent %])] + [rc/checkbox + :model (:re-frame low-level-trace) + :label "re-frame internals" + :on-change #(rf/dispatch [:settings/low-level-trace :re-frame %])]] + [[:p "Most of the time, low level trace is noisy and you want it filtered out."]] + settings-box-131]) [rc/line] [settings-box