user progress
This commit is contained in:
@@ -53,7 +53,7 @@
|
||||
(let [data-sub (or data-sub [::forms/form id])
|
||||
change-event (when-not on-change
|
||||
(or change-event [::forms/change id]))
|
||||
{:keys [data visited attempted-submit? problems] form-key :id} @(re-frame/subscribe data-sub)
|
||||
{:keys [data visited attempted-submit? problems error] form-key :id} @(re-frame/subscribe data-sub)
|
||||
data (or value data)
|
||||
status @(re-frame/subscribe [::status/single id])
|
||||
can-submit (if can-submit @(re-frame/subscribe can-submit)
|
||||
@@ -68,7 +68,7 @@
|
||||
:submit-event submit-event
|
||||
:problems problems
|
||||
:attempted-submit? attempted-submit?
|
||||
:error (-> status :error first :message)
|
||||
:error (or error (-> status :error first :message))
|
||||
:status status
|
||||
:id id
|
||||
:data data
|
||||
@@ -91,7 +91,8 @@
|
||||
))))
|
||||
|
||||
(defn virtual-builder []
|
||||
(let [key (r/atom (random-uuid))]
|
||||
(let [starting-key (random-uuid)
|
||||
key (r/atom starting-key)]
|
||||
(fn [{:keys [value on-change can-submit error-messages fullwidth? schema]}]
|
||||
(let [data-sub [::forms/form @key]
|
||||
{:keys [data error problems visited]} @(re-frame/subscribe data-sub)
|
||||
@@ -99,8 +100,12 @@
|
||||
(r/create-element Provider #js {:value #js {:can-submit can-submit
|
||||
:error-messages (or error-messages
|
||||
nil)
|
||||
:on-change on-change
|
||||
:blur-event [::blurred schema @key]
|
||||
;; wrap to make sure raw form updates too
|
||||
:on-change (fn [v]
|
||||
(re-frame/dispatch-sync [::forms/reset @key v])
|
||||
(on-change v))
|
||||
:blur-event [::blurred schema @key ]
|
||||
:problems problems
|
||||
:visited visited
|
||||
:error error
|
||||
:id @key
|
||||
@@ -201,6 +206,7 @@
|
||||
nil)
|
||||
visited? (get visited full-field-path)
|
||||
value (get-in data full-field-path)]
|
||||
(println "VISITED " visited full-field-path problems)
|
||||
(-> child-props
|
||||
(assoc :on-change
|
||||
(if on-change
|
||||
|
||||
Reference in New Issue
Block a user