mirror of
https://github.com/penpot/penpot.git
synced 2025-05-10 13:06:38 +02:00
🐛 Fix scape key to clear focus on input
This commit is contained in:
parent
eef42acf79
commit
fe7f4004f1
4 changed files with 48 additions and 8 deletions
|
@ -163,7 +163,8 @@
|
||||||
(when enter?
|
(when enter?
|
||||||
(dom/blur! input-node))
|
(dom/blur! input-node))
|
||||||
(when esc?
|
(when esc?
|
||||||
(update-input value-str)))))
|
(update-input value-str)
|
||||||
|
(dom/blur! input-node)))))
|
||||||
|
|
||||||
handle-mouse-wheel
|
handle-mouse-wheel
|
||||||
(mf/use-callback
|
(mf/use-callback
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
[app.main.ui.icons :as i]
|
[app.main.ui.icons :as i]
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
[app.util.i18n :as i18n :refer [tr]]
|
[app.util.i18n :as i18n :refer [tr]]
|
||||||
|
[app.util.keyboard :as kbd]
|
||||||
[app.util.strings :refer [matches-search]]
|
[app.util.strings :refer [matches-search]]
|
||||||
[cuerdas.core :as str]
|
[cuerdas.core :as str]
|
||||||
[okulary.core :as l]
|
[okulary.core :as l]
|
||||||
|
@ -97,7 +98,18 @@
|
||||||
(st/emit! (dwl/set-file-shared (:id file) false))
|
(st/emit! (dwl/set-file-shared (:id file) false))
|
||||||
(modal/show! :libraries-dialog {}))
|
(modal/show! :libraries-dialog {}))
|
||||||
:on-cancel #(modal/show! :libraries-dialog {})
|
:on-cancel #(modal/show! :libraries-dialog {})
|
||||||
:count-libraries 1}))))]
|
:count-libraries 1}))))
|
||||||
|
handle-key-down
|
||||||
|
(mf/use-callback
|
||||||
|
(fn [event]
|
||||||
|
(let [enter? (kbd/enter? event)
|
||||||
|
esc? (kbd/esc? event)
|
||||||
|
input-node (dom/event->target event)]
|
||||||
|
|
||||||
|
(when enter?
|
||||||
|
(dom/blur! input-node))
|
||||||
|
(when esc?
|
||||||
|
(dom/blur! input-node)))))]
|
||||||
[:*
|
[:*
|
||||||
[:div.section
|
[:div.section
|
||||||
[:div.section-title (tr "workspace.libraries.in-this-file")]
|
[:div.section-title (tr "workspace.libraries.in-this-file")]
|
||||||
|
@ -130,7 +142,8 @@
|
||||||
{:placeholder (tr "workspace.libraries.search-shared-libraries")
|
{:placeholder (tr "workspace.libraries.search-shared-libraries")
|
||||||
:type "text"
|
:type "text"
|
||||||
:value @search-term
|
:value @search-term
|
||||||
:on-change on-search-term-change}]
|
:on-change on-search-term-change
|
||||||
|
:on-key-down handle-key-down}]
|
||||||
(if (str/empty? @search-term)
|
(if (str/empty? @search-term)
|
||||||
[:div.search-icon
|
[:div.search-icon
|
||||||
i/search]
|
i/search]
|
||||||
|
|
|
@ -2243,7 +2243,19 @@
|
||||||
(let [value (-> (dom/get-target event)
|
(let [value (-> (dom/get-target event)
|
||||||
(dom/get-value)
|
(dom/get-value)
|
||||||
(d/read-string))]
|
(d/read-string))]
|
||||||
(swap! filters assoc :box value))))]
|
(swap! filters assoc :box value))))
|
||||||
|
|
||||||
|
handle-key-down
|
||||||
|
(mf/use-callback
|
||||||
|
(fn [event]
|
||||||
|
(let [enter? (kbd/enter? event)
|
||||||
|
esc? (kbd/esc? event)
|
||||||
|
input-node (dom/event->target event)]
|
||||||
|
|
||||||
|
(when enter?
|
||||||
|
(dom/blur! input-node))
|
||||||
|
(when esc?
|
||||||
|
(dom/blur! input-node)))))]
|
||||||
|
|
||||||
[:div.assets-bar
|
[:div.assets-bar
|
||||||
[:div.tool-window
|
[:div.tool-window
|
||||||
|
@ -2260,7 +2272,8 @@
|
||||||
{:placeholder (tr "workspace.assets.search")
|
{:placeholder (tr "workspace.assets.search")
|
||||||
:type "text"
|
:type "text"
|
||||||
:value (:term @filters)
|
:value (:term @filters)
|
||||||
:on-change on-search-term-change}]
|
:on-change on-search-term-change
|
||||||
|
:on-key-down handle-key-down}]
|
||||||
(if (str/empty? (:term @filters))
|
(if (str/empty? (:term @filters))
|
||||||
[:div.search-icon
|
[:div.search-icon
|
||||||
i/search]
|
i/search]
|
||||||
|
|
|
@ -468,7 +468,19 @@
|
||||||
handle-show-more
|
handle-show-more
|
||||||
(fn []
|
(fn []
|
||||||
(when (<= (:num-items @filter-state) (count filtered-objects-total))
|
(when (<= (:num-items @filter-state) (count filtered-objects-total))
|
||||||
(swap! filter-state update :num-items + 100)))]
|
(swap! filter-state update :num-items + 100)))
|
||||||
|
|
||||||
|
handle-key-down
|
||||||
|
(mf/use-callback
|
||||||
|
(fn [event]
|
||||||
|
(let [enter? (kbd/enter? event)
|
||||||
|
esc? (kbd/esc? event)
|
||||||
|
input-node (dom/event->target event)]
|
||||||
|
|
||||||
|
(when enter?
|
||||||
|
(dom/blur! input-node))
|
||||||
|
(when esc?
|
||||||
|
(dom/blur! input-node)))))]
|
||||||
|
|
||||||
[filtered-objects
|
[filtered-objects
|
||||||
handle-show-more
|
handle-show-more
|
||||||
|
@ -483,7 +495,8 @@
|
||||||
[:input {:on-change update-search-text
|
[:input {:on-change update-search-text
|
||||||
:value (:search-text @filter-state)
|
:value (:search-text @filter-state)
|
||||||
:auto-focus (:show-search-box @filter-state)
|
:auto-focus (:show-search-box @filter-state)
|
||||||
:placeholder (tr "workspace.sidebar.layers.search")}]]
|
:placeholder (tr "workspace.sidebar.layers.search")
|
||||||
|
:on-key-down handle-key-down}]]
|
||||||
(when (not (= "" (:search-text @filter-state)))
|
(when (not (= "" (:search-text @filter-state)))
|
||||||
[:span.clear {:on-click clear-search-text} i/exclude])]
|
[:span.clear {:on-click clear-search-text} i/exclude])]
|
||||||
[:span {:on-click toggle-search} i/cross]]
|
[:span {:on-click toggle-search} i/cross]]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue