A way better approach for form validation. Feels good now.

This commit is contained in:
2022-07-19 08:24:33 -07:00
parent b84600e4f1
commit cab3a84903
18 changed files with 530 additions and 111 deletions

View File

@@ -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]]