From 883a51427dc42bfec713261150bb8ea17d643afb Mon Sep 17 00:00:00 2001 From: Phil Jones Date: Thu, 5 Jul 2018 16:15:08 -0300 Subject: [PATCH] voltei pra utilizar estado local no input ... solucionei o problema atualizando o campo com r/with-let ... outra formatacao --- resources/public/index.html | 7 +++- src/cljs/contascalangos/db.cljs | 3 +- src/cljs/contascalangos/events.cljs | 13 ++----- src/cljs/contascalangos/subs.cljs | 8 +--- src/cljs/contascalangos/views.cljs | 58 +++++++++++++++++------------ 5 files changed, 45 insertions(+), 44 deletions(-) diff --git a/resources/public/index.html b/resources/public/index.html index 1afd9ee..a4aa387 100755 --- a/resources/public/index.html +++ b/resources/public/index.html @@ -2,8 +2,11 @@ - - + +
diff --git a/src/cljs/contascalangos/db.cljs b/src/cljs/contascalangos/db.cljs index 21a3b15..bc2e939 100755 --- a/src/cljs/contascalangos/db.cljs +++ b/src/cljs/contascalangos/db.cljs @@ -1,6 +1,5 @@ (ns contascalangos.db) (def default-db - {:name "re-frame" - :tmp-val "" + {:name "Contas do Calango" :orcamento '(100 -20 120 -30 -40 -15 20)}) diff --git a/src/cljs/contascalangos/events.cljs b/src/cljs/contascalangos/events.cljs index fcf84b7..b705b18 100755 --- a/src/cljs/contascalangos/events.cljs +++ b/src/cljs/contascalangos/events.cljs @@ -16,18 +16,11 @@ (assoc db :active-panel active-panel))) (re-frame/reg-event-db -:adicionar -(fn [coeffects event] +:adicionar +(fn [coeffects event] (let [db (:db coeffects) - novo-valor (:tmp-nova db) + novo-valor (second event) itens (:orcamento db)] {:db (assoc db :orcamento (cons novo-valor itens))} ) )) - -(re-frame/reg-event-db -:tmp-nova -(fn [coeffects event] - (let [db (:db coeffects)] - {:db (assoc db :tmp-nova (second event))} - )) ) \ No newline at end of file diff --git a/src/cljs/contascalangos/subs.cljs b/src/cljs/contascalangos/subs.cljs index 2a6b1c1..50fe128 100755 --- a/src/cljs/contascalangos/subs.cljs +++ b/src/cljs/contascalangos/subs.cljs @@ -7,8 +7,8 @@ (fn [db] (:name db))) -(re-frame/reg-sub -::orc +(re-frame/reg-sub +::orc (fn [db] (:orcamento db)) ) @@ -16,7 +16,3 @@ ::active-panel (fn [db _] (:active-panel db))) - -(re-frame/reg-sub -::tmp-nova -(fn [db] (:tmp-nova db))) diff --git a/src/cljs/contascalangos/views.cljs b/src/cljs/contascalangos/views.cljs index faacb09..a2c7386 100755 --- a/src/cljs/contascalangos/views.cljs +++ b/src/cljs/contascalangos/views.cljs @@ -9,36 +9,46 @@ ;; home (defn home-panel [] - (let [name (re-frame/subscribe [::subs/name]) - orcamento (re-frame/subscribe [::subs/orc]) - nova (re-frame/subscribe [::subs/tmp-nova])] - [:div - [:h1 (str "Olá Calangos do " @name)] - - [:div - [:ul - (for [item @orcamento] [:li item]) - ] - ] - - [:div (apply + @orcamento)] - - [:div + (let [name (re-frame/subscribe [::subs/name]) + orcamento (re-frame/subscribe [::subs/orc]) ] + (r/with-let [nova (r/atom 0)] + [:div + [:h2 (str @name)] + + [:div + [:table + [:tr [:td "Receita"] [:td "Gasta"]] + + (for [item @orcamento] + (if (< 0 item) + [:tr + [:td item] [:td] ] + [:tr + [:td] + [:td + [:span {:class "negative"} item]]])) + ] + ] + + + [:div [:h3 "Total : " (apply + @orcamento)]] + + [:div [:input {:type "text" - :value @nova - :on-change #(re-frame/dispatch [:tmp-nova (-> % .-target .-value)] ) - }] + :value @nova + :on-change #(reset! nova (-> % .-target .-value)) + }] - [:button {:on-click #(re-frame/dispatch [:adicionar ])} "Adicionar" ] + [:button {:on-click #(re-frame/dispatch [:adicionar (int @nova)])} "Adicionar" ] - ] + ] - [:div - [:a {:href "#/about"} - "go to About Page"]] + [:div + [:a {:href "#/about"} + "go to About Page"]] - ])) + ]))) ;; about