removed redundant stuff.

This commit is contained in:
2022-07-22 22:55:26 -07:00
parent 7f5a2ea353
commit 005bfe2603
21 changed files with 357 additions and 399 deletions

View File

@@ -89,11 +89,13 @@
(into [:fieldset {:disabled (boolean (= :loading (:state status)))}]
(r/children (r/current-component)))]
))))
;; TODO make virtual builder operate as a cursor and an input instead of a whole new thing
;; make it inherit the outer form, avoiding creating new forms
(defn virtual-builder []
(let [starting-key (random-uuid)
key (r/atom starting-key)]
(fn [{:keys [value on-change can-submit error-messages fullwidth? schema]}]
(re-frame/dispatch [::forms/start-form starting-key []])
(fn [{:keys [value on-change can-submit error-messages fullwidth? schema attempted-submit?]}]
(let [data-sub [::forms/form @key]
{:keys [data error problems visited]} @(re-frame/subscribe data-sub)
data (or value data)]
@@ -101,11 +103,12 @@
:error-messages (or error-messages
nil)
;; wrap to make sure raw form updates too
:on-change (fn [v]
:on-change (fn [v o]
(re-frame/dispatch-sync [::forms/reset @key v])
(on-change v))
(on-change v o))
:blur-event [::blurred schema @key ]
:problems problems
:attempted-submit? attempted-submit?
:visited visited
:error error
:id @key
@@ -206,7 +209,6 @@
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
@@ -246,22 +248,6 @@
label)])
(into [:div.control ] children)]))))
(defn field []
(let [props (r/props (r/current-component))
[label child] (r/children (r/current-component))]
[:> Consumer {}
(fn [consume]
(r/as-element
[:div.field
(when label
(if (aget consume "fullwidth?")
[:p.help label]
[:label.label
(if (:required? props)
[:span label [:span.has-text-danger " *"]]
label)]))
[:div.control [raw-field {} child]]]))]))
(defn field-v2 []
(let [props (r/props (r/current-component))
[label child] (r/children (r/current-component))]
@@ -280,23 +266,6 @@
[:div
[raw-error-v2 {:field (:field props)}]]]))))
(defn horizontal-control []
(let [[label & children] (r/children (r/current-component))]
[:div.field.is-horizontal
(when label
[:div.field-label [:label.label label]])
[:div.field-body
(for [[i child] (map vector (range) children)]
^{:key i}
[:div.field
child])]]))
(defn horizontal-field []
(let [[label child] (r/children (r/current-component))]
[horizontal-control
label
[raw-field {} child]]))
(defn section [{:keys [title]}]
[:<>
[:h4.is-4.title title]