♻️ Refactor keyboard events to replace a deprecated parameter

This commit is contained in:
Andrés Moya 2021-04-28 10:09:50 +02:00 committed by Alonso Torres
parent 547a472016
commit b0575e969f
7 changed files with 25 additions and 33 deletions

View file

@ -18,9 +18,6 @@
[app.util.path.subpaths :as ups] [app.util.path.subpaths :as ups]
[potok.core :as ptk])) [potok.core :as ptk]))
;; CONSTANTS
(defonce enter-keycode 13)
(defn end-path-event? [{:keys [type shift] :as event}] (defn end-path-event? [{:keys [type shift] :as event}]
(or (= (ptk/type event) ::common/finish-path) (or (= (ptk/type event) ::common/finish-path)
(= (ptk/type event) :esc-pressed) (= (ptk/type event) :esc-pressed)

View file

@ -11,8 +11,8 @@
[app.main.store :as st] [app.main.store :as st]
[app.main.refs :as refs] [app.main.refs :as refs]
[app.common.geom.point :as gpt] [app.common.geom.point :as gpt]
[app.util.globals :as globals]) [app.util.globals :as globals]
(:import goog.events.KeyCodes)) [app.util.keyboard :as kbd]))
;; --- User Events ;; --- User Events
@ -113,8 +113,7 @@
ob (->> (rx/merge ob (->> (rx/merge
(->> st/stream (->> st/stream
(rx/filter keyboard-event?) (rx/filter keyboard-event?)
(rx/filter #(let [key (:key %)] (rx/filter kbd/altKey?)
(= key KeyCodes.ALT)))
(rx/map #(= :down (:type %)))) (rx/map #(= :down (:type %))))
;; Fix a situation caused by using `ctrl+alt` kind of shortcuts, ;; Fix a situation caused by using `ctrl+alt` kind of shortcuts,
;; that makes keyboard-alt stream registring the key pressed but ;; that makes keyboard-alt stream registring the key pressed but
@ -130,10 +129,7 @@
ob (->> (rx/merge ob (->> (rx/merge
(->> st/stream (->> st/stream
(rx/filter keyboard-event?) (rx/filter keyboard-event?)
(rx/filter #(let [key (:key %)] (rx/filter kbd/ctrlKey?)
(or
(= key KeyCodes.CTRL)
(= key KeyCodes.META))))
(rx/map #(= :down (:type %)))) (rx/map #(= :down (:type %))))
;; Fix a situation caused by using `ctrl+alt` kind of shortcuts, ;; Fix a situation caused by using `ctrl+alt` kind of shortcuts,
;; that makes keyboard-alt stream registring the key pressed but ;; that makes keyboard-alt stream registring the key pressed but

View file

@ -3,10 +3,10 @@
[rumext.alpha :as mf] [rumext.alpha :as mf]
[app.common.uuid :as uuid] [app.common.uuid :as uuid]
[app.util.dom :as dom] [app.util.dom :as dom]
[app.util.keyboard :as kbd]
[goog.events :as events] [goog.events :as events]
[goog.object :as gobj]) [goog.object :as gobj])
(:import goog.events.EventType (:import goog.events.EventType))
goog.events.KeyCodes))
(mf/defc dropdown' (mf/defc dropdown'
{::mf/wrap-props false} {::mf/wrap-props false}
@ -27,7 +27,7 @@
on-keyup on-keyup
(fn [event] (fn [event]
(when (= (.-keyCode event) 27) ; ESC (when (kbd/esc? event)
(on-close))) (on-close)))
on-mount on-mount

View file

@ -24,8 +24,7 @@
[app.common.math :as mth] [app.common.math :as mth]
[app.util.router :as rt] [app.util.router :as rt]
[app.main.data.viewer :as vd]) [app.main.data.viewer :as vd])
(:import goog.events.EventType (:import goog.events.EventType))
goog.events.KeyCodes))
(mf/defc thumbnails-content (mf/defc thumbnails-content
[{:keys [children expanded? total] :as props}] [{:keys [children expanded? total] :as props}]

View file

@ -18,6 +18,7 @@
[app.main.ui.cursors :as cur] [app.main.ui.cursors :as cur]
[app.main.ui.shapes.text.styles :as sts] [app.main.ui.shapes.text.styles :as sts]
[app.util.dom :as dom] [app.util.dom :as dom]
[app.util.keyboard :as kbd]
[app.util.object :as obj] [app.util.object :as obj]
[app.util.text-editor :as ted] [app.util.text-editor :as ted]
[cuerdas.core :as str] [cuerdas.core :as str]
@ -25,8 +26,7 @@
[okulary.core :as l] [okulary.core :as l]
[rumext.alpha :as mf]) [rumext.alpha :as mf])
(:import (:import
goog.events.EventType goog.events.EventType))
goog.events.KeyCodes))
;; --- Text Editor Rendering ;; --- Text Editor Rendering
@ -84,7 +84,7 @@
on-key-up on-key-up
(fn [event] (fn [event]
(dom/stop-propagation event) (dom/stop-propagation event)
(when (= (.-keyCode event) 27) ; ESC (when (kbd/esc? event)
(do (do
(st/emit! :interrupt) (st/emit! :interrupt)
(st/emit! dw/clear-edition-mode)))) (st/emit! dw/clear-edition-mode))))

View file

@ -24,8 +24,7 @@
[beicon.core :as rx] [beicon.core :as rx]
[cuerdas.core :as str] [cuerdas.core :as str]
[rumext.alpha :as mf]) [rumext.alpha :as mf])
(:import goog.events.WheelEvent (:import goog.events.WheelEvent))
goog.events.KeyCodes))
(defn on-mouse-down (defn on-mouse-down
[{:keys [id blocked hidden type]} drawing-tool text-editing? edition edit-path selected] [{:keys [id blocked hidden type]} drawing-tool text-editing? edition edit-path selected]
@ -263,8 +262,7 @@
(mf/use-callback (mf/use-callback
(fn [event] (fn [event]
(let [bevent (.getBrowserEvent ^js event) (let [bevent (.getBrowserEvent ^js event)
key (.-keyCode ^js event) key (.-key ^js event)
key (.normalizeKeyCode KeyCodes key)
ctrl? (kbd/ctrl? event) ctrl? (kbd/ctrl? event)
shift? (kbd/shift? event) shift? (kbd/shift? event)
alt? (kbd/alt? event) alt? (kbd/alt? event)
@ -284,8 +282,7 @@
(defn on-key-up [] (defn on-key-up []
(mf/use-callback (mf/use-callback
(fn [event] (fn [event]
(let [key (.-keyCode event) (let [key (.-key event)
key (.normalizeKeyCode KeyCodes key)
ctrl? (kbd/ctrl? event) ctrl? (kbd/ctrl? event)
shift? (kbd/shift? event) shift? (kbd/shift? event)
alt? (kbd/alt? event) alt? (kbd/alt? event)

View file

@ -6,10 +6,10 @@
(ns app.util.keyboard) (ns app.util.keyboard)
(defn is-keycode? (defn is-key?
[keycode] [key]
(fn [e] (fn [e]
(= (.-keyCode e) keycode))) (= (.-key e) key)))
(defn ^boolean alt? (defn ^boolean alt?
[event] [event]
@ -27,8 +27,11 @@
[event] [event]
(.-shiftKey event)) (.-shiftKey event))
(def esc? (is-keycode? 27)) (def esc? (is-key? "Escape"))
(def enter? (is-keycode? 13)) (def enter? (is-key? "Enter"))
(def space? (is-keycode? 32)) (def space? (is-key? " "))
(def up-arrow? (is-keycode? 38)) (def up-arrow? (is-key? "ArrowUp"))
(def down-arrow? (is-keycode? 40)) (def down-arrow? (is-key? "ArrowDown"))
(def altKey? (is-key? "Alt"))
(def ctrlKey? (or (is-key? "Control")
(is-key? "Meta")))