mirror of
https://github.com/penpot/penpot.git
synced 2025-02-02 04:19:08 -05:00
Replace token with value when inserted after token input
This commit is contained in:
parent
6f5930bf15
commit
850bf80ffc
1 changed files with 17 additions and 9 deletions
|
@ -17,6 +17,7 @@
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
[app.util.keyboard :as kbd]
|
[app.util.keyboard :as kbd]
|
||||||
[app.util.timers :as timers]
|
[app.util.timers :as timers]
|
||||||
|
[cuerdas.core :as str]
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(defn on-number-input-key-down [{:keys [event min-val max-val set-value!]}]
|
(defn on-number-input-key-down [{:keys [event min-val max-val set-value!]}]
|
||||||
|
@ -138,19 +139,26 @@
|
||||||
(fn [^js event]
|
(fn [^js event]
|
||||||
(cond
|
(cond
|
||||||
token (let [backspace? (kbd/backspace? event)
|
token (let [backspace? (kbd/backspace? event)
|
||||||
|
enter? (kbd/enter? event)
|
||||||
value (-> event dom/get-target dom/get-value)
|
value (-> event dom/get-target dom/get-value)
|
||||||
caret-at-beginning? (nil? (.. event -target -selectionStart))]
|
caret-at-beginning? (nil? (.. event -target -selectionStart))
|
||||||
|
delete-token? (and backspace? caret-at-beginning?)
|
||||||
|
replace-token-with-value? (and enter? (seq (str/trim value)))]
|
||||||
(cond
|
(cond
|
||||||
(and backspace? caret-at-beginning?) (do
|
delete-token? (do
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event)
|
||||||
(on-token-remove token)
|
(on-token-remove token)
|
||||||
(swap! state* assoc :refocus? true)
|
;; Re-focus the input value of the newly rendered input element
|
||||||
:else (set-token-value! value))
|
(swap! state* assoc :refocus? true))
|
||||||
(js/console.log "backspace?" caret-at-beginning? (.. event -target)))
|
replace-token-with-value? (do
|
||||||
|
(dom/prevent-default event)
|
||||||
|
(set-token-value! nil)
|
||||||
|
(on-token-remove token)
|
||||||
|
(handle-change-input event))
|
||||||
|
:else (set-token-value! value)))
|
||||||
is-open? (let [up? (kbd/up-arrow? event)
|
is-open? (let [up? (kbd/up-arrow? event)
|
||||||
down? (kbd/down-arrow? event)]
|
down? (kbd/down-arrow? event)]
|
||||||
(dom/prevent-default event)
|
(dom/prevent-default event))
|
||||||
(js/console.log "up? down?" up? down?))
|
|
||||||
(= type "number") (on-number-input-key-down {:event event
|
(= type "number") (on-number-input-key-down {:event event
|
||||||
:min-val min-val
|
:min-val min-val
|
||||||
:max-val max-val
|
:max-val max-val
|
||||||
|
|
Loading…
Add table
Reference in a new issue