Fix bug where grubs/recipes could not be deleted
- Fixed by using keywords as map keys client-side. Monger "keywordizes" keys by default and it's easier to change client side than to remove that behavior.
This commit is contained in:
parent
6794e81ea9
commit
f7b79a5e2a
5 changed files with 12 additions and 19 deletions
|
@ -22,7 +22,7 @@
|
|||
(when (not (empty? new-grub-text))
|
||||
(let [new-grub (grub-view/new-grub new-grub-text)]
|
||||
(om/set-state! owner :new-grub-text "")
|
||||
(om/transact! grubs nil #(assoc % (:id new-grub) new-grub) :local))))
|
||||
(om/transact! grubs nil #(assoc % (keyword (:id new-grub)) new-grub) :local))))
|
||||
|
||||
(defn view [grubs owner]
|
||||
(reify
|
||||
|
@ -71,5 +71,5 @@
|
|||
(go-loop []
|
||||
(let [id (<! remove-grub-ch)]
|
||||
(when-not (nil? id)
|
||||
(om/transact! grubs nil #(dissoc % id) :local)
|
||||
(om/transact! grubs nil #(dissoc % (keyword id)) :local)
|
||||
(recur))))))))
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
(ns grub.view.recipe-list
|
||||
(:require [grub.view.dom :as dom]
|
||||
[grub.view.grub :as grub-view]
|
||||
[grub.view.recipe :as recipe]
|
||||
(:require [grub.view.recipe :as recipe]
|
||||
[grub.view.recipe-new :as recipe-new]
|
||||
[om.core :as om :include-macros true]
|
||||
[sablono.core :as html :refer-macros [html]]
|
||||
[cljs.core.async :as a :refer [<! chan]]
|
||||
[cljs-uuid.core :as uuid])
|
||||
[sablono.core :refer-macros [html]]
|
||||
[cljs.core.async :refer [<! chan]])
|
||||
(:require-macros [grub.macros :refer [log logs]]
|
||||
[cljs.core.async.macros :refer [go go-loop]]))
|
||||
|
||||
|
@ -36,9 +33,9 @@
|
|||
(go (loop []
|
||||
(let [removed-id (<! remove-recipe-ch)]
|
||||
(when-not (nil? removed-id)
|
||||
(om/transact! recipes nil #(dissoc % removed-id) :local))
|
||||
(om/transact! recipes nil #(dissoc % (keyword removed-id)) :local))
|
||||
(recur))))
|
||||
(go (loop []
|
||||
(let [added (<! add-recipe-ch)]
|
||||
(om/transact! recipes nil #(assoc % (:id added) added) :local)
|
||||
(om/transact! recipes nil #(assoc % (keyword (:id added)) added) :local)
|
||||
(recur))))))))
|
||||
|
|
|
@ -2,17 +2,15 @@
|
|||
(:require [grub.view.dom :as dom]
|
||||
[grub.view.recipe :as recipe]
|
||||
[om.core :as om :include-macros true]
|
||||
[sablono.core :as html :refer-macros [html]]
|
||||
[cljs.core.async :as a :refer [<! chan]]
|
||||
[cljs-uuid.core :as uuid])
|
||||
[sablono.core :refer-macros [html]]
|
||||
[cljs.core.async :as a :refer [<! chan]])
|
||||
(:require-macros [grub.macros :refer [log logs]]
|
||||
[cljs.core.async.macros :refer [go go-loop]]))
|
||||
|
||||
(defn add-recipe [owner name grubs directions]
|
||||
(when (and (not (empty? name))
|
||||
(not (empty? grubs)))
|
||||
(let [recipes (om/get-props owner)
|
||||
new-recipe (recipe/new-recipe name grubs directions)
|
||||
(let [new-recipe (recipe/new-recipe name grubs directions)
|
||||
add-recipe-ch (om/get-state owner :add-recipe-ch)]
|
||||
(om/set-state! owner :new-recipe-name "")
|
||||
(om/set-state! owner :new-recipe-grubs "")
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
(ns grub.state
|
||||
(:require [grub.diff :as diff]
|
||||
[grub.util :as util]))
|
||||
(ns grub.state)
|
||||
|
||||
(def num-history-states 20)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
(defn map-by-key [key coll]
|
||||
(->> coll
|
||||
(map (fn [a] [(get a key) a]))
|
||||
(map (fn [a] [(keyword (get a key)) a]))
|
||||
(into {})))
|
||||
|
||||
(defn printer []
|
||||
|
|
Loading…
Add table
Reference in a new issue