Fix toggle-amount-mode: set up form cursor context for grid re-render
The toggle-amount-mode handler was failing because account-grid-body* uses fc/cursor-map which requires the form cursor context to be set up. Added manual cursor binding in toggle-amount-mode to create a cursor pointing to the transaction/accounts vector and bind it to fc/*current* before rendering the grid.
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
[auto-ap.ssr.grid-page-helper :as helper]
|
[auto-ap.ssr.grid-page-helper :as helper]
|
||||||
[auto-ap.ssr.transaction.common :refer [grid-page]]
|
[auto-ap.ssr.transaction.common :refer [grid-page]]
|
||||||
[auto-ap.ssr.components.multi-modal :as mm]
|
[auto-ap.ssr.components.multi-modal :as mm]
|
||||||
|
[auto-ap.cursor :as cursor]
|
||||||
[auto-ap.ssr.form-cursor :as fc]
|
[auto-ap.ssr.form-cursor :as fc]
|
||||||
[auto-ap.ssr.hx :as hx]
|
[auto-ap.ssr.hx :as hx]
|
||||||
[auto-ap.ssr.svg :as svg]
|
[auto-ap.ssr.svg :as svg]
|
||||||
@@ -358,13 +359,19 @@
|
|||||||
(let [snapshot (-> request :multi-form-state :snapshot)
|
(let [snapshot (-> request :multi-form-state :snapshot)
|
||||||
old-mode (or (:amount-mode snapshot) "$")
|
old-mode (or (:amount-mode snapshot) "$")
|
||||||
new-mode (or (get-in request [:form-params :amount-mode]) "$")
|
new-mode (or (get-in request [:form-params :amount-mode]) "$")
|
||||||
total (Math/abs (:transaction/amount snapshot))
|
total (Math/abs (or (:transaction/amount snapshot) 0.0))
|
||||||
accounts (convert-accounts-mode (:transaction/accounts snapshot) old-mode new-mode total)]
|
accounts (convert-accounts-mode (:transaction/accounts snapshot) old-mode new-mode total)
|
||||||
|
updated-request (-> request
|
||||||
|
(assoc-in [:multi-form-state :snapshot :transaction/accounts] accounts)
|
||||||
|
(assoc-in [:multi-form-state :snapshot :amount-mode] new-mode))
|
||||||
|
mfs-cursor (cursor/cursor (:multi-form-state updated-request))
|
||||||
|
accounts-cursor (get (get (get mfs-cursor :snapshot) :step-params) :transaction/accounts)]
|
||||||
|
(binding [fc/*form-data* (:multi-form-state updated-request)
|
||||||
|
fc/*form-errors* {}
|
||||||
|
fc/*current* accounts-cursor]
|
||||||
(html-response
|
(html-response
|
||||||
[:div#account-grid-body
|
[:div#account-grid-body
|
||||||
(account-grid-body* (-> request
|
(account-grid-body* updated-request)]))))
|
||||||
(assoc-in [:multi-form-state :snapshot :transaction/accounts] accounts)
|
|
||||||
(assoc-in [:multi-form-state :snapshot :amount-mode] new-mode)))])))
|
|
||||||
|
|
||||||
(defrecord BasicDetailsStep [linear-wizard]
|
(defrecord BasicDetailsStep [linear-wizard]
|
||||||
mm/ModalWizardStep
|
mm/ModalWizardStep
|
||||||
|
|||||||
Reference in New Issue
Block a user