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