🚧 More work on data validation.

This commit is contained in:
Andrey Antukh 2019-09-10 12:00:52 +02:00
parent faf7877d00
commit b1459f85cd
11 changed files with 136 additions and 150 deletions

View file

@ -7,20 +7,21 @@
(ns uxbox.main.ui.auth.login
(:require
[rumext.alpha :as mf]
[cljs.spec.alpha :as s]
[rumext.alpha :as mf]
[uxbox.builtins.icons :as i]
[uxbox.config :as cfg]
[uxbox.main.data.auth :as da]
[uxbox.main.store :as st]
[uxbox.main.ui.messages :refer [messages-widget]]
[uxbox.util.dom :as dom]
[uxbox.util.forms :as fm2]
[uxbox.util.forms :as fm]
[uxbox.util.i18n :refer [tr]]
[uxbox.util.router :as rt]))
[uxbox.util.router :as rt]
[uxbox.util.spec :as us]))
(s/def ::username ::fm2/not-empty-string)
(s/def ::password ::fm2/not-empty-string)
(s/def ::username ::us/not-empty-string)
(s/def ::password ::us/not-empty-string)
(s/def ::login-form
(s/keys :req-un [::username ::password]))
@ -44,8 +45,7 @@
(mf/defc login-form
[]
(let [{:keys [data] :as form} (fm2/use-form ::login-form {})]
(prn "login-form" form)
(let [{:keys [data] :as form} (fm/use-form ::login-form {})]
[:form {:on-submit #(on-submit % form)}
[:div.login-content
(when cfg/isdemo
@ -55,18 +55,18 @@
{:name "username"
:tab-index "2"
:value (:username data "")
:class (fm2/error-class form :username)
:on-blur (fm2/on-input-blur form :username)
:on-change (fm2/on-input-change form :username)
:class (fm/error-class form :username)
:on-blur (fm/on-input-blur form :username)
:on-change (fm/on-input-change form :username)
:placeholder (tr "auth.email-or-username")
:type "text"}]
[:input.input-text
{:name "password"
:tab-index "3"
:value (:password data "")
:class (fm2/error-class form :password)
:on-blur (fm2/on-input-blur form :password)
:on-change (fm2/on-input-change form :password)
:class (fm/error-class form :password)
:on-blur (fm/on-input-blur form :password)
:on-change (fm/on-input-change form :password)
:placeholder (tr "auth.password")
:type "password"}]
[:input.btn-primary

View file

@ -66,10 +66,8 @@
(dom/prevent-default event)
(let [data (:clean-data form)
on-success #(st/emit! (um/info (tr "settings.profile.profile-saved")))
on-error #(on-error % form)
opts {:on-success on-success
:on-error on-error}]
(st/emit! (udu/update-profile data opts))))
on-error #(on-error % form)]
(st/emit! (udu/form->update-profile data on-success on-error))))
;; --- Profile Form

View file

@ -49,7 +49,7 @@
(l/derive st/state)))
(mf/defc user
[_]
[props]
(let [open (mf/use-state false)
profile (mf/deref profile-ref)
photo (if (str/empty? (:photo profile ""))

View file

@ -43,8 +43,8 @@
(on-name-change [event]
(let [value (-> (dom/event->value event)
(str/trim))]
(st/emit! (->> (assoc page :name value)
(udp/update-page (:id page))))))
(st/emit! (-> (assoc page :name value)
(udp/update-page-attrs)))))
(show-color-picker [event]
(let [x (.-clientX event)

View file

@ -43,8 +43,8 @@
(modal/hide!)
(let [data (:clean-data form)]
(if (nil? (:id data))
(st/emit! (udp/create-page data))
(st/emit! (udp/persist-page-update-form data)))))
(st/emit! (udp/form->create-page data))
(st/emit! (udp/form->update-page data)))))
(defn- swap-size
[event {:keys [data] :as form}]