update api
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
{:model model}))
|
||||
|
||||
;; === View ===
|
||||
(defn view [{:keys [count]} _size]
|
||||
(defn view [{:keys [count]}]
|
||||
[:col {:gap 1}
|
||||
[:box {:border :rounded :padding [0 1]}
|
||||
[:col
|
||||
|
||||
+1
-1
@@ -61,7 +61,7 @@
|
||||
{:model model})))
|
||||
|
||||
;; === View ===
|
||||
(defn view [{:keys [state status error url]} _size]
|
||||
(defn view [{:keys [state status error url]}]
|
||||
[:col {:gap 1}
|
||||
[:box {:border :rounded :padding [1 2]}
|
||||
[:col {:gap 1}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
{:model model})))
|
||||
|
||||
;; === View ===
|
||||
(defn view [{:keys [cursor items selected submitted]} _size]
|
||||
(defn view [{:keys [cursor items selected submitted]}]
|
||||
(if submitted
|
||||
[:col
|
||||
[:text {:bold true :fg :green} "You selected:"]
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
idx (mod frame (count frames))]
|
||||
(nth frames idx)))
|
||||
|
||||
(defn view [{:keys [loading message style] :as model} _size]
|
||||
(defn view [{:keys [loading message style] :as model}]
|
||||
[:col {:gap 1}
|
||||
[:box {:border :rounded :padding [1 2]}
|
||||
[:col {:gap 1}
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@
|
||||
secs (mod seconds 60)]
|
||||
(format "%02d:%02d" mins secs)))
|
||||
|
||||
(defn view [{:keys [seconds running done]} _size]
|
||||
(defn view [{:keys [seconds running done]}]
|
||||
[:col {:gap 1}
|
||||
[:box {:border :rounded :padding [1 2]}
|
||||
[:col
|
||||
|
||||
+1
-1
@@ -103,7 +103,7 @@
|
||||
[:text {:fg :green} "[y] Yes"]
|
||||
[:text {:fg :red} "[n] No"]]]]])
|
||||
|
||||
(defn view [{:keys [view] :as model} _size]
|
||||
(defn view [{:keys [view] :as model}]
|
||||
(case view
|
||||
:menu (menu-view model)
|
||||
:detail (detail-view model)
|
||||
|
||||
+4
-4
@@ -131,7 +131,7 @@
|
||||
Options:
|
||||
- :init - Initial model (required)
|
||||
- :update - (fn [{:keys [model event]}] {:model m :events [...]}) (required)
|
||||
- :view - (fn [model size] hiccup) where size is {:width w :height h} (required)
|
||||
- :view - (fn [model] hiccup) (required)
|
||||
- :init-events - Vector of events to dispatch at startup
|
||||
- :fps - Target frames per second (default 60)
|
||||
- :alt-screen - Use alternate screen buffer (default true)
|
||||
@@ -162,7 +162,7 @@
|
||||
(let [size (term/get-terminal-size)
|
||||
ctx {:available-height (:height size)
|
||||
:available-width (:width size)}]
|
||||
(term/render! (render/render (view init size) ctx)))
|
||||
(term/render! (render/render (view init) ctx)))
|
||||
|
||||
;; Main loop
|
||||
(loop [model init
|
||||
@@ -196,7 +196,7 @@
|
||||
(execute-event! e msg-chan)))
|
||||
|
||||
;; Render with context for flex layouts
|
||||
(term/render! (render/render (view new-model size) ctx))
|
||||
(term/render! (render/render (view new-model) ctx))
|
||||
|
||||
(recur new-model now))))))
|
||||
|
||||
@@ -218,7 +218,7 @@
|
||||
(defapp my-app
|
||||
:init {:count 0}
|
||||
:update (fn [{:keys [model event]}] ...)
|
||||
:view (fn [model size] ...))"
|
||||
:view (fn [model] ...))"
|
||||
[name & {:keys [init update view init-events]}]
|
||||
`(def ~name
|
||||
{:init ~init
|
||||
|
||||
Reference in New Issue
Block a user