-
Notifications
You must be signed in to change notification settings - Fork 1
/
paragraph.cljs
39 lines (37 loc) · 1.41 KB
/
paragraph.cljs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
(ns ez-wire.form.paragraph
(:require [ez-wire.form.common :as common]
[ez-wire.form.helpers :as helpers]
[ez-wire.util :as util]))
(defn- paragraph [{:keys [wiring] :as field} {{label? :label?} :options :as form-map}]
(if wiring
[:$wrapper wiring]
(if (false? label?)
[:p {:key (str "li-" (:id field))}
(common/render-field field form-map)
(common/render-error-element field form-map)
(common/render-text field form-map)
(common/render-help field form-map)]
[:p {:key (str "li-" (:id field))}
(common/render-label field form-map)
(common/render-field (dissoc field :label) form-map)
(common/render-error-element field form-map)
(common/render-text field form-map)
(common/render-help field form-map)])))
(defn as-paragraph
[params form-map & [content]]
(let [{:keys [id]
:or {id (util/gen-id)}} params
body (common/get-body paragraph params form-map)
re-render? (helpers/re-render? form-map)]
(fn [params form-map & [content]]
(let [{:keys [style
class]
:or {style {}
class ""}} params
body (if re-render? (common/get-body paragraph params form-map) body)]
[:div {:key (util/slug "form-paragraph" id)
:style style
:class class}
body
(if content
[content])]))))