A way better approach for form validation. Feels good now.
This commit is contained in:
@@ -8,7 +8,9 @@
|
||||
(re-frame/reg-sub
|
||||
::form
|
||||
(fn [db [_ x]]
|
||||
(get (-> db ::forms) x)))
|
||||
(update (get (-> db ::forms) x)
|
||||
:visited (fn [v]
|
||||
(or v #{})))))
|
||||
|
||||
(re-frame/reg-sub
|
||||
::field
|
||||
@@ -31,6 +33,7 @@
|
||||
(assoc-in db [::forms form] {:error nil
|
||||
:active? true
|
||||
:id (random-uuid)
|
||||
:visited #{}
|
||||
:status nil
|
||||
:data data
|
||||
:complete-listener complete-listener})))
|
||||
@@ -75,6 +78,12 @@
|
||||
db
|
||||
(partition 2 path-pairs))))
|
||||
|
||||
(re-frame/reg-event-db
|
||||
::visited
|
||||
(fn [db [_ form & paths]]
|
||||
(update-in db [::forms form :visited] (fn [v]
|
||||
(set (into v paths))))))
|
||||
|
||||
(defn change-handler [form customize-fn]
|
||||
(fn [db [_ & path-pairs]]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user