Subs panel WIP (and refactor names and tidy)

This commit is contained in:
Gregg8 2018-01-10 17:58:35 +11:00
parent 6dbdd4c8c7
commit b9aa386686
5 changed files with 107 additions and 51 deletions

View File

@ -22,7 +22,7 @@
(def cljs-dev-tools-background "#e8ffe8")
(def pod-gap common/gs-19s)
(defn top-buttons []
(defn panel-header []
[rc/h-box
:justify :between
:margin "19px 0px"
@ -41,7 +41,7 @@
:height "48px"
:padding "0px 12px"
:style {:background-color "#fafbfc"
:border "1px solid #e8edf1" ;; TODO: Need to get proper color from Figma
:border "1px solid #e3e9ed"
:border-radius "3px"}
:children [[rc/label :label "reset app-db to:"]
[rc/button
@ -203,7 +203,7 @@
:margin-top "22px"}
:label "add inspectors to show what happened to app-db"]]])
(defn paths []
(defn pod-section []
(let [
pods [["x" "y"] [:abc 123] nil]
;pods nil
@ -216,11 +216,11 @@
(doall (for [p pods] [app-db-path p])))])))
(defn render-state [data]
(defn render [app-db]
[rc/v-box
:style {:margin-right common/gs-19s}
:children [[top-buttons]
[paths]
:children [[panel-header]
[pod-section]
[rc/gap-f :size pod-gap]]])

View File

@ -119,15 +119,16 @@
(when-not (re-frame.trace/is-trace-enabled?)
[:h1.host-closed {:style {:word-wrap "break-word"}} "Tracing is not enabled. Please set " [:pre "{\"re_frame.trace.trace_enabled_QMARK_\" true}"] " in " [:pre ":closure-defines"]])
[rc/v-box
:size "auto"
:style {:margin-left common/gs-19s :overflow "auto"}
:size "auto"
:style {:margin-left common/gs-19s
:overflow "auto"}
:children [(case @selected-tab
:event [event/render traces]
:app-db [app-db/render-state db/app-db]
:subs [subs/subs-panel]
:app-db [app-db/render db/app-db]
:subs [subs/render]
:views [views/render]
:traces [traces/render-trace-panel traces]
:traces [traces/render traces]
:timing [timing/render]
:debug [debug/render-debug]
:debug [debug/render]
:settings [settings/render]
[app-db/render-state db/app-db])]]]))
[app-db/render db/app-db])]]]))

View File

@ -3,7 +3,7 @@
[mranderson047.re-frame.v0v10v2.re-frame.core :as rf]
[day8.re-frame.trace.metamorphic :as metam]))
(defn render-debug []
(defn render []
[rc/v-box
:gap "5px"
:children

View File

@ -1,9 +1,12 @@
(ns day8.re-frame.trace.view.subs
(:require [re-frame.subs :as subs]
[day8.re-frame.trace.utils.re-com :as rc]
;[cljs.spec.alpha :as s]
[day8.re-frame.trace.view.components :as components]
[mranderson047.re-frame.v0v10v2.re-frame.core :as rf]))
[mranderson047.re-frame.v0v10v2.re-frame.core :as rf]
[mranderson047.reagent.v0v6v0.reagent.core :as r]
[day8.re-frame.trace.utils.re-com :as rc]
[day8.re-frame.trace.common-styles :as common])
(:require-macros [day8.re-frame.trace.utils.macros :as macros]))
;(s/def ::query-v any?)
;(s/def ::dyn-v any?)
@ -12,42 +15,94 @@
;(s/def ::query-cache (s/map-of ::query-cache-params ::deref))
;(assert (s/valid? ::query-cache (rc/deref-or-value-peek subs/query->reaction)))
(def copy (macros/slurp-macro "day8/re_frame/trace/images/copy.svg"))
(def pod-gap common/gs-19s)
(defn tag
[type label]
(let [color (case type
:created "#9b51e0"
:destroyed "#f2994a"
:re-run "#219653"
:not-run "#bdbdbd"
"black")]
[rc/box
:style {:color "white"
:background-color color
:width common/gs-50s
:height common/gs-19s
:font-size "10px"
:font-weight "bold"
:border-radius "3px"}
:child [:span {:style {:margin "auto"}} label]]))
(defn subs-panel []
(defn title-tag
[type title label]
[rc/v-box
:align :center
:gap "2px"
:children [[:span {:style {:font-size "9px"}} title]
[tag type label]]])
(defn panel-header []
[rc/h-box
:justify :between
:margin "19px 0px"
:align :center
:children [[rc/h-box
:align :center
:gap common/gs-19s
:height "48px"
:padding "0px 19px"
:style {:background-color "#fafbfc"
:border "1px solid #e3e9ed"
:border-radius "3px"}
:children [[:span {:style {:color "#828282"
:font-size "18px"
:font-weight "lighter"}} "Summary:"]
[title-tag :created "CREATED" 2]
[title-tag :re-run "RE-RUN" 44]
[title-tag :destroyed "DESTROYED" 1]
[title-tag :not-run "NOT-RUN" 12]]]
[rc/h-box
:align :center
:gap common/gs-19s
:height "48px"
:padding "0px 19px"
:style {:background-color "#fafbfc"
:border "1px solid #e3e9ed"
:border-radius "3px"}
:children [[rc/checkbox
:model true
:label [:span "Ignore unchanged" [:br] "layer 2 subs"]
:style {:margin-top "6px"}
:on-change #()]]]]])
(defn render []
[]
[:div {:style {:flex "1 1 auto" :display "flex" :flex-direction "column"}}
[rc/label
:label "Created"
:class "bm-heading-text"]
[rc/label
:label "Run"
:class "bm-heading-text"]
[rc/label
:label "Destroyed"
:class "bm-heading-text"]
[rc/label
:label "Not Run"
:class "bm-heading-text"]
[:div.panel-content-scrollable
[:div.subtrees {:style {:margin "20px 0"}}
(doall
(->> @subs/query->reaction
(sort-by (fn [me] (ffirst (key me))))
(map (fn [me]
(let [[query-v dyn-v :as inputs] (key me)]
^{:key query-v}
[:div.subtree-wrapper {:style {:margin "10px 0"}}
[:div.subtree
[components/subscription-render
(rc/deref-or-value-peek (val me))
[:button.subtree-button {:on-click #(rf/dispatch [:app-db/remove-path (key me)])}
[:span.subtree-button-string
(prn-str (first (key me)))]]
(into [:subs] query-v)]]]))
)))
(do @re-frame.db/app-db
nil)]]])
[rc/v-box
:style {:margin-right common/gs-19s}
:children [[panel-header]
;[pod-section]
[:div.panel-content-scrollable
[:div.subtrees {:style {:margin "20px 0"}}
(doall
(->> @subs/query->reaction
(sort-by (fn [me] (ffirst (key me))))
(map (fn [me]
(let [[query-v dyn-v :as inputs] (key me)]
^{:key query-v}
[:div.subtree-wrapper {:style {:margin "10px 0"}}
[:div.subtree
[components/subscription-render
(rc/deref-or-value-peek (val me))
[:button.subtree-button {:on-click #(rf/dispatch [:app-db/remove-path (key me)])}
[:span.subtree-button-string
(prn-str (first (key me)))]]
(into [:subs] query-v)]]]))
)))
(do @re-frame.db/app-db
nil)]]
[rc/gap-f :size pod-gap]]])

View File

@ -81,7 +81,7 @@
[:td.trace--meta.trace--details-icon
{:on-click #(.log js/console tags)}]]))))))))
(defn render-trace-panel [traces]
(defn render [traces]
(let [filter-input (r/atom "")
filter-items (rf/subscribe [:traces/filter-items])
filter-type (r/atom :contains)