mirror of
https://github.com/penpot/penpot.git
synced 2025-07-23 17:17:13 +02:00
♻️ Refactor (again) numeric input component
This commit is contained in:
parent
e96d129ee8
commit
ab0245279f
11 changed files with 182 additions and 198 deletions
|
@ -17,7 +17,21 @@
|
|||
[app.util.webapi :as wapi]
|
||||
[cuerdas.core :as str]
|
||||
[goog.dom :as dom]
|
||||
[promesa.core :as p]))
|
||||
[promesa.core :as p])
|
||||
(:import goog.events.BrowserEvent))
|
||||
|
||||
(extend-type BrowserEvent
|
||||
cljs.core/IDeref
|
||||
(-deref [it] (.getBrowserEvent it)))
|
||||
|
||||
|
||||
(defn browser-event?
|
||||
[o]
|
||||
(instance? BrowserEvent o))
|
||||
|
||||
(defn native-event?
|
||||
[o]
|
||||
(instance? js/Event o))
|
||||
|
||||
(log/set-level! :warn)
|
||||
|
||||
|
@ -338,10 +352,19 @@
|
|||
y (.-offsetY event)]
|
||||
(gpt/point x y))))
|
||||
|
||||
(defn get-delta-position
|
||||
[event]
|
||||
(let [e (if (browser-event? event)
|
||||
(deref event)
|
||||
event)
|
||||
x (.-deltaX ^js e)
|
||||
y (.-deltaY ^js e)]
|
||||
(gpt/point x y)))
|
||||
|
||||
(defn get-client-size
|
||||
[^js node]
|
||||
(when (some? node)
|
||||
(grc/make-rect 0 0 (.-clientWidth ^js node) (.-clientHeight ^js node))))
|
||||
(grc/make-rect 0 0 (.-clientWidth node) (.-clientHeight node))))
|
||||
|
||||
(defn get-bounding-rect
|
||||
[node]
|
||||
|
|
|
@ -73,6 +73,11 @@
|
|||
(unchecked-set obj key value)
|
||||
obj)
|
||||
|
||||
(defn unset!
|
||||
[obj key]
|
||||
(js-delete obj key)
|
||||
obj)
|
||||
|
||||
(defn update!
|
||||
[obj key f & args]
|
||||
(let [found (get obj key ::not-found)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue