Clean up screen function execution code
This commit is contained in:
@@ -43,6 +43,14 @@
|
|||||||
(when (not= e-old e-new)
|
(when (not= e-old e-new)
|
||||||
(compare-and-set! e-atom e-old e-new)))
|
(compare-and-set! e-atom e-old e-new)))
|
||||||
|
|
||||||
|
(defn ^:private normalize
|
||||||
|
[entities]
|
||||||
|
(some->> entities
|
||||||
|
list
|
||||||
|
flatten
|
||||||
|
(remove nil?)
|
||||||
|
vec))
|
||||||
|
|
||||||
(defn ^:private wrapper
|
(defn ^:private wrapper
|
||||||
[screen screen-fn]
|
[screen screen-fn]
|
||||||
(screen-fn))
|
(screen-fn))
|
||||||
@@ -53,13 +61,10 @@
|
|||||||
:as options}]
|
:as options}]
|
||||||
(let [execute-fn! (fn [func & {:keys [] :as options}]
|
(let [execute-fn! (fn [func & {:keys [] :as options}]
|
||||||
(when func
|
(when func
|
||||||
(let [old-entities @entities]
|
(let [screen-map (merge @screen options)
|
||||||
(some->> #(some->> (func (merge @screen options)
|
old-entities @entities]
|
||||||
old-entities)
|
(some->> (fn []
|
||||||
list
|
(normalize (func screen-map old-entities)))
|
||||||
flatten
|
|
||||||
(remove nil?)
|
|
||||||
vec)
|
|
||||||
(wrapper screen)
|
(wrapper screen)
|
||||||
(reset-changed! entities old-entities)))))]
|
(reset-changed! entities old-entities)))))]
|
||||||
; update screen when either the screen or entities are changed
|
; update screen when either the screen or entities are changed
|
||||||
|
|||||||
Reference in New Issue
Block a user