mirror of
https://github.com/penpot/penpot.git
synced 2025-06-01 22:41:42 +02:00
🚧 More work on data validation.
This commit is contained in:
parent
faf7877d00
commit
b1459f85cd
11 changed files with 136 additions and 150 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 ""))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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}]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue