mirror of
https://github.com/penpot/penpot.git
synced 2025-06-08 16:11:38 +02:00
🐛 Fix bugs in comments (#5734)
* 🐛 Fix could not remove or update new comments without closing and reopening the thread * 🐛 Fix scroll over long comments using the mouse wheel
This commit is contained in:
parent
d7477cd448
commit
0bd4a7d0fc
2 changed files with 33 additions and 24 deletions
|
@ -621,6 +621,7 @@
|
||||||
|
|
||||||
comment (-> (db/insert! conn :comment params)
|
comment (-> (db/insert! conn :comment params)
|
||||||
(decode-row)
|
(decode-row)
|
||||||
|
(assoc :file-id file-id)
|
||||||
(add-owner profile))]
|
(add-owner profile))]
|
||||||
|
|
||||||
;; Update thread modified-at attribute and assoc the current
|
;; Update thread modified-at attribute and assoc the current
|
||||||
|
|
|
@ -374,33 +374,41 @@
|
||||||
(mf/deps zoom)
|
(mf/deps zoom)
|
||||||
(fn [event]
|
(fn [event]
|
||||||
(let [event (.getBrowserEvent ^js event)
|
(let [event (.getBrowserEvent ^js event)
|
||||||
|
|
||||||
target (dom/get-target event)
|
target (dom/get-target event)
|
||||||
mod? (kbd/mod? event)
|
mod? (kbd/mod? event)
|
||||||
picking-color? (= "pixel-overlay" (.-id target))
|
|
||||||
on-comments-layer? (dom/is-child? (dom/get-element "comments") target)]
|
|
||||||
|
|
||||||
(when (or (uwvv/inside-viewport? target) picking-color? on-comments-layer?)
|
|
||||||
(dom/prevent-default event)
|
|
||||||
(dom/stop-propagation event)
|
|
||||||
(let [raw-pt (dom/get-client-position event)
|
|
||||||
pt (uwvv/point->viewport raw-pt)
|
|
||||||
norm-event ^js (nw/normalize-wheel event)
|
|
||||||
ctrl? (kbd/ctrl? event)
|
ctrl? (kbd/ctrl? event)
|
||||||
delta-y (.-pixelY norm-event)
|
|
||||||
delta-x (.-pixelX norm-event)]
|
|
||||||
|
|
||||||
(if (or ctrl? mod?)
|
picking-color? (= "pixel-overlay" (.-id target))
|
||||||
(let [delta-zoom (+ delta-y delta-x)
|
comments-layer? (dom/is-child? (dom/get-element "comments") target)
|
||||||
|
|
||||||
|
raw-pt (dom/get-client-position event)
|
||||||
|
pt (uwvv/point->viewport raw-pt)
|
||||||
|
|
||||||
|
norm-event ^js (nw/normalize-wheel event)
|
||||||
|
|
||||||
|
delta-y (.-pixelY norm-event)
|
||||||
|
delta-x (.-pixelX norm-event)
|
||||||
|
delta-zoom (+ delta-y delta-x)
|
||||||
|
|
||||||
scale (+ 1 (mth/abs (* scale-per-pixel delta-zoom)))
|
scale (+ 1 (mth/abs (* scale-per-pixel delta-zoom)))
|
||||||
scale (if (pos? delta-zoom) (/ 1 scale) scale)]
|
scale (if (pos? delta-zoom) (/ 1 scale) scale)]
|
||||||
(st/emit! (dw/set-zoom pt scale)))
|
|
||||||
|
|
||||||
(if (and (not (cfg/check-platform? :macos))
|
(when (or (uwvv/inside-viewport? target) picking-color?)
|
||||||
|
(dom/prevent-default event)
|
||||||
|
(dom/stop-propagation event)
|
||||||
|
(if (or ctrl? mod?)
|
||||||
|
(st/emit! (dw/set-zoom pt scale))
|
||||||
|
(if (and (not (cfg/check-platform? :macos)) (kbd/shift? event))
|
||||||
;; macos sends delta-x automatically, don't need to do it
|
;; macos sends delta-x automatically, don't need to do it
|
||||||
(kbd/shift? event))
|
|
||||||
(st/emit! (dw/update-viewport-position {:x #(+ % (/ delta-y zoom))}))
|
(st/emit! (dw/update-viewport-position {:x #(+ % (/ delta-y zoom))}))
|
||||||
(st/emit! (dw/update-viewport-position {:x #(+ % (/ delta-x zoom))
|
(st/emit! (dw/update-viewport-position {:x #(+ % (/ delta-x zoom))
|
||||||
:y #(+ % (/ delta-y zoom))}))))))))))
|
:y #(+ % (/ delta-y zoom))})))))
|
||||||
|
|
||||||
|
(when (and comments-layer? (or ctrl? mod?))
|
||||||
|
(dom/prevent-default event)
|
||||||
|
(dom/stop-propagation event)
|
||||||
|
(st/emit! (dw/set-zoom pt scale)))))))
|
||||||
|
|
||||||
(defn on-drag-enter
|
(defn on-drag-enter
|
||||||
[comp-inst-ref]
|
[comp-inst-ref]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue