mirror of
https://github.com/penpot/penpot.git
synced 2025-05-12 20:06:37 +02:00
🐛 Fix unexpected exception when user leaves typography name empty.
This commit is contained in:
parent
6e8a5015c9
commit
8847047fd1
3 changed files with 19 additions and 20 deletions
|
@ -1238,7 +1238,6 @@
|
||||||
qparams {:page-id page-id}]
|
qparams {:page-id page-id}]
|
||||||
(rx/of (rt/nav :workspace pparams qparams))))))
|
(rx/of (rt/nav :workspace pparams qparams))))))
|
||||||
|
|
||||||
|
|
||||||
(defn go-to-viewer
|
(defn go-to-viewer
|
||||||
([] (go-to-viewer {}))
|
([] (go-to-viewer {}))
|
||||||
([{:keys [file-id page-id]}]
|
([{:keys [file-id page-id]}]
|
||||||
|
|
|
@ -428,26 +428,27 @@
|
||||||
[:> text-transform-options opts]]]))
|
[:> text-transform-options opts]]]))
|
||||||
|
|
||||||
|
|
||||||
|
;; TODO: this need to be refactored, right now combines too much logic
|
||||||
|
;; and has a dropdown that behaves like a modal but is not a modal.
|
||||||
|
;; In summary, this need to a good UX/UI/IMPL rework.
|
||||||
|
|
||||||
(mf/defc typography-entry
|
(mf/defc typography-entry
|
||||||
[{:keys [typography read-only? selected? on-click on-change on-detach on-context-menu editting? focus-name? file]}]
|
[{:keys [typography read-only? selected? on-click on-change on-detach on-context-menu editting? focus-name? file]}]
|
||||||
(let [open? (mf/use-state editting?)
|
(let [open? (mf/use-state editting?)
|
||||||
hover-detach (mf/use-state false)
|
hover-detach (mf/use-state false)
|
||||||
name-input-ref (mf/use-ref nil)
|
name-input-ref (mf/use-ref)
|
||||||
value (mf/use-state (cp/merge-path-item (:path typography) (:name typography)))
|
|
||||||
|
|
||||||
#_(rt/resolve router :workspace
|
on-name-blur
|
||||||
{:project-id (:project-id file)
|
|
||||||
:file-id (:id file)}
|
|
||||||
{:page-id (get-in file [:data :pages 0])})
|
|
||||||
|
|
||||||
handle-change
|
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(reset! value (dom/get-target-val event)))
|
(let [content (dom/get-target-val event)]
|
||||||
|
(when-not (str/blank? content)
|
||||||
|
(on-change {:name content}))))
|
||||||
|
|
||||||
handle-go-to-edit
|
handle-go-to-edit
|
||||||
(fn [] (st/emit! (rt/nav :workspace {:project-id (:project-id file)
|
(fn []
|
||||||
:file-id (:id file)}
|
(let [pparams {:project-id (:project-id file)
|
||||||
{:page-id (get-in file [:data :pages 0])})))]
|
:file-id (:id file)}]
|
||||||
|
(st/emit! (rt/nav :workspace pparams))))]
|
||||||
|
|
||||||
(mf/use-effect
|
(mf/use-effect
|
||||||
(mf/deps editting?)
|
(mf/deps editting?)
|
||||||
|
@ -459,7 +460,7 @@
|
||||||
(mf/deps focus-name?)
|
(mf/deps focus-name?)
|
||||||
(fn []
|
(fn []
|
||||||
(when focus-name?
|
(when focus-name?
|
||||||
(ts/schedule 100
|
(ts/schedule
|
||||||
#(when-let [node (mf/ref-val name-input-ref)]
|
#(when-let [node (mf/ref-val name-input-ref)]
|
||||||
(dom/focus! node)
|
(dom/focus! node)
|
||||||
(dom/select-text! node))))))
|
(dom/select-text! node))))))
|
||||||
|
@ -530,8 +531,7 @@
|
||||||
[:input.element-name.adv-typography-name
|
[:input.element-name.adv-typography-name
|
||||||
{:type "text"
|
{:type "text"
|
||||||
:ref name-input-ref
|
:ref name-input-ref
|
||||||
:value @value
|
:default-value (cp/merge-path-item (:path typography) (:name typography))
|
||||||
:on-change handle-change
|
:on-blur on-name-blur}]]]
|
||||||
:on-blur #(on-change {:name @value})}]]]
|
|
||||||
[:& typography-options {:values typography
|
[:& typography-options {:values typography
|
||||||
:on-change on-change}]])]]))
|
:on-change on-change}]])]]))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue