Editing works.
This commit is contained in:
@@ -33,6 +33,9 @@
|
||||
(defprotocol Initializable
|
||||
(init-step-params [this multi-form-state request]))
|
||||
|
||||
(defprotocol CustomNext
|
||||
(custom-next-handler [this request]))
|
||||
|
||||
(defprotocol Discardable
|
||||
(can-discard? [this step-params])
|
||||
(discard-changes [this request]))
|
||||
@@ -70,6 +73,11 @@
|
||||
:edit-path []
|
||||
:step-params @cursor)))
|
||||
|
||||
(defn get-mfs-field [mfs k]
|
||||
(or (get (:step-params mfs) k)
|
||||
(get-in (:snapshot mfs) (conj (or (:edit-path mfs) [])
|
||||
k))))
|
||||
|
||||
(def step-key-schema (mc/schema [:orn {:decode/arbitrary clojure.edn/read-string
|
||||
:encode/arbitrary pr-str}
|
||||
[:sub-step [:cat :keyword [:or :int :string]]]
|
||||
@@ -228,7 +236,7 @@
|
||||
:else
|
||||
"forward")))
|
||||
|
||||
(defn render-navigate [{ {:keys [wizard] :as request } :request to-step :to-step oob :oob}]
|
||||
(defn navigate-handler [{{:keys [wizard] :as request} :request to-step :to-step oob :oob}]
|
||||
(let [current-step (get-current-step wizard)
|
||||
wizard (navigate wizard to-step)
|
||||
new-step (get-current-step wizard)
|
||||
@@ -249,12 +257,15 @@
|
||||
|
||||
(def next-handler
|
||||
(-> (fn [{:keys [wizard] :as request}]
|
||||
(render-navigate {:request request
|
||||
:to-step (:to (:query-params request))}))
|
||||
(let [current-step (get-current-step wizard)]
|
||||
(if (satisfies? CustomNext current-step)
|
||||
(custom-next-handler current-step request)
|
||||
(navigate-handler {:request request
|
||||
:to-step (:to (:query-params request))}))))
|
||||
(wrap-ensure-step)
|
||||
(wrap-schema-enforce :query-schema
|
||||
[:map
|
||||
[:to step-key-schema]])))
|
||||
[:to {:optional true} [:maybe step-key-schema]]])))
|
||||
|
||||
(def discard-handler
|
||||
(->
|
||||
@@ -326,7 +337,7 @@
|
||||
(assoc request :wizard (hydrate-from-request linear-wizard request))))))
|
||||
|
||||
(defn open-wizard-handler [{:keys [wizard current-step query-params] :as request}]
|
||||
(cond->
|
||||
(cond->
|
||||
(modal-response
|
||||
[:div#transitioner.flex-1 {:x-data (hx/json {"transitionType" "none"})
|
||||
:x-ref "transitioner"
|
||||
|
||||
Reference in New Issue
Block a user