fix(ssr): humanize the client wizard's required-field message
A missing required field (e.g. the Info step with no Location added) surfaced Malli's raw "missing required key". Override the missing-key message in validate-with's me/humanize call so it reads "This is required." for every required field across the client wizard. Verified live on the Info step. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -491,12 +491,19 @@
|
|||||||
|
|
||||||
(defn- decode-info [request] (->edn-safe-dates (decode-with info-schema request)))
|
(defn- decode-info [request] (->edn-safe-dates (decode-with info-schema request)))
|
||||||
|
|
||||||
|
(def ^:private humanize-opts
|
||||||
|
"Friendlier text for a missing required field than Malli's default
|
||||||
|
\"missing required key\" (e.g. the Info step with no location added)."
|
||||||
|
{:errors (assoc-in me/default-errors
|
||||||
|
[:malli.core/missing-key :error/message]
|
||||||
|
"This is required.")})
|
||||||
|
|
||||||
(defn- validate-with
|
(defn- validate-with
|
||||||
"Per-step validation: a step can't advance until its fields satisfy the step schema.
|
"Per-step validation: a step can't advance until its fields satisfy the step schema.
|
||||||
Returns a humanized errors map or nil."
|
Returns a humanized errors map or nil."
|
||||||
[schema data _request]
|
[schema data _request]
|
||||||
(when-not (mc/validate schema data)
|
(when-not (mc/validate schema data)
|
||||||
(me/humanize (mc/explain schema data))))
|
(me/humanize (mc/explain schema data) humanize-opts)))
|
||||||
|
|
||||||
(defn- client-timeline [active]
|
(defn- client-timeline [active]
|
||||||
(let [steps ["Info" "Matches" "Contact" "Bank Accounts" "Integrations" "Cash Flow" "Other Settings"]
|
(let [steps ["Info" "Matches" "Contact" "Bank Accounts" "Integrations" "Cash Flow" "Other Settings"]
|
||||||
|
|||||||
Reference in New Issue
Block a user