Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (defn form [init-state spec]
- {:will-mount
- (fn [state]
- (let [local-state (atom init-state)
- validate #(let [v @local-state
- valid? (s/valid? spec v)]
- {:valid? valid?
- :errors (when-not valid? (s/explain-data spec v))})
- validation (atom (validate))
- component (:rum/react-component state)]
- (add-watch local-state spec
- (fn [_ _ ost nst]
- (when (not= ost nst)
- (reset! validation (validate)))
- (rum/request-render component)))
- (assoc state
- :form/state local-state
- :form/validation validation)))})
Add Comment
Please, Sign In to add comment