-
Notifications
You must be signed in to change notification settings - Fork 0
/
paragraph.cljc
57 lines (49 loc) · 1.62 KB
/
paragraph.cljc
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
(ns ez-form.paragraph
(:require [ez-form.common :refer [get-first]]
[ez-form.decorate :refer [add-decor]]
[ez-form.field :as ez.field :refer [get-opts
option]]))
(defmulti paragraph (fn [field form-options] (:type field)))
(defmethod paragraph :checkbox [field form-options]
(list
[:p (ez.field/label field)]
[:p (add-decor :wrapper field)
(ez.field/errors field)
(ez.field/field field form-options)
(ez.field/text field)
(ez.field/help field)]))
(defmethod paragraph :radio [field form-options]
(list
[:p (ez.field/label field)]
[:p (add-decor :wrapper field)
(ez.field/errors field)
(ez.field/field field form-options)
(ez.field/text field)
(ez.field/help field)]))
(defmethod paragraph :textarea [field form-options]
(list
[:p (ez.field/label field)]
[:p (add-decor :wrapper field)
(ez.field/errors field)
(ez.field/field field form-options)
(ez.field/text field)
(ez.field/help field)
(if-let [help (ez.field/help field)]
[:div.help help])]))
(defmethod paragraph :dropdown [field form-options]
(list
[:p (ez.field/label field)]
[:p (add-decor :wrapper field)
(ez.field/errors field)
(ez.field/field field form-options)
(ez.field/text field)
(ez.field/help field)]))
(defmethod paragraph :default [field form-options]
"Any input that is like text will work with this one"
(list
[:p (ez.field/label field)]
[:p (add-decor :wrapper field)
(ez.field/errors field)
(ez.field/field field form-options)
(ez.field/text field)
(ez.field/help field)]))