mirror of
https://github.com/penpot/penpot.git
synced 2025-06-06 13:01:41 +02:00
🐛 Fix drag-select when renaming layer text
This commit is contained in:
parent
0f6ce233bd
commit
cd7ad03cf0
3 changed files with 23 additions and 19 deletions
|
@ -64,6 +64,7 @@
|
||||||
- Fix cannot click on blocked elements in viewer [Taiga #1430](https://tree.taiga.io/project/penpot/issue/1430)
|
- Fix cannot click on blocked elements in viewer [Taiga #1430](https://tree.taiga.io/project/penpot/issue/1430)
|
||||||
- Fix SVG not showing properties at code [Taiga #1437](https://tree.taiga.io/project/penpot/issue/1437)
|
- Fix SVG not showing properties at code [Taiga #1437](https://tree.taiga.io/project/penpot/issue/1437)
|
||||||
- Fix shadows when exporting groups [Taiga #1495](https://tree.taiga.io/project/penpot/issue/1495)
|
- Fix shadows when exporting groups [Taiga #1495](https://tree.taiga.io/project/penpot/issue/1495)
|
||||||
|
- Fix drag-select when renaming layer text [Taiga #1307](https://tree.taiga.io/project/penpot/issue/1307)
|
||||||
|
|
||||||
|
|
||||||
### :arrow_up: Deps updates
|
### :arrow_up: Deps updates
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
[app.common.spec :as us]
|
[app.common.spec :as us]
|
||||||
[app.main.data.shortcuts :refer [bind-shortcuts]]
|
[app.main.data.shortcuts :refer [bind-shortcuts]]
|
||||||
[app.util.dom :as dom]
|
[app.util.dom :as dom]
|
||||||
|
[app.util.object :as obj]
|
||||||
[app.util.dom.dnd :as dnd]
|
[app.util.dom.dnd :as dnd]
|
||||||
[app.util.logging :as log]
|
[app.util.logging :as log]
|
||||||
[app.util.timers :as ts]
|
[app.util.timers :as ts]
|
||||||
|
@ -97,7 +98,7 @@
|
||||||
;; things go weird.
|
;; things go weird.
|
||||||
|
|
||||||
(defn use-sortable
|
(defn use-sortable
|
||||||
[& {:keys [data-type data on-drop on-drag on-hold detect-center?] :as opts}]
|
[& {:keys [data-type data on-drop on-drag on-hold disabled detect-center?] :as opts}]
|
||||||
(let [ref (mf/use-ref)
|
(let [ref (mf/use-ref)
|
||||||
state (mf/use-state {:over nil
|
state (mf/use-state {:over nil
|
||||||
:timer nil
|
:timer nil
|
||||||
|
@ -125,13 +126,16 @@
|
||||||
|
|
||||||
on-drag-start
|
on-drag-start
|
||||||
(fn [event]
|
(fn [event]
|
||||||
|
(if disabled
|
||||||
|
(dom/prevent-default event)
|
||||||
|
(let [target (dom/get-target event)]
|
||||||
(dom/stop-propagation event)
|
(dom/stop-propagation event)
|
||||||
;; (dnd/trace event data "drag-start")
|
;; (dnd/trace event data "drag-start")
|
||||||
(dnd/set-data! event data-type data)
|
(dnd/set-data! event data-type data)
|
||||||
(dnd/set-drag-image! event (invisible-image))
|
(dnd/set-drag-image! event (invisible-image))
|
||||||
(dnd/set-allowed-effect! event "move")
|
(dnd/set-allowed-effect! event "move")
|
||||||
(when (fn? on-drag)
|
(when (fn? on-drag)
|
||||||
(on-drag data)))
|
(on-drag data)))))
|
||||||
|
|
||||||
on-drag-enter
|
on-drag-enter
|
||||||
(fn [event]
|
(fn [event]
|
||||||
|
|
|
@ -54,31 +54,25 @@
|
||||||
(l/derived (l/in [:workspace-local :shape-for-rename]) st/state))
|
(l/derived (l/in [:workspace-local :shape-for-rename]) st/state))
|
||||||
|
|
||||||
(mf/defc layer-name
|
(mf/defc layer-name
|
||||||
[{:keys [shape] :as props}]
|
[{:keys [shape on-start-edit on-stop-edit] :as props}]
|
||||||
(let [local (mf/use-state {})
|
(let [local (mf/use-state {})
|
||||||
shape-for-rename (mf/deref shape-for-rename-ref)
|
shape-for-rename (mf/deref shape-for-rename-ref)
|
||||||
name-ref (mf/use-ref)
|
name-ref (mf/use-ref)
|
||||||
|
|
||||||
set-draggable (fn [value]
|
|
||||||
(let [parent (.. (mf/ref-val name-ref)
|
|
||||||
-parentNode
|
|
||||||
-parentNode)]
|
|
||||||
(set! (.-draggable parent) value)))
|
|
||||||
|
|
||||||
start-edit (fn []
|
start-edit (fn []
|
||||||
(set-draggable false)
|
(on-start-edit)
|
||||||
(swap! local assoc :edition true))
|
(swap! local assoc :edition true))
|
||||||
|
|
||||||
accept-edit (fn []
|
accept-edit (fn []
|
||||||
(let [name-input (mf/ref-val name-ref)
|
(let [name-input (mf/ref-val name-ref)
|
||||||
name (dom/get-value name-input)]
|
name (dom/get-value name-input)]
|
||||||
(set-draggable true)
|
(on-stop-edit)
|
||||||
(swap! local assoc :edition false)
|
(swap! local assoc :edition false)
|
||||||
(st/emit! (dw/end-rename-shape)
|
(st/emit! (dw/end-rename-shape)
|
||||||
(dw/update-shape (:id shape) {:name name}))))
|
(dw/update-shape (:id shape) {:name name}))))
|
||||||
|
|
||||||
cancel-edit (fn []
|
cancel-edit (fn []
|
||||||
(set-draggable true)
|
(on-stop-edit)
|
||||||
(swap! local assoc :edition false)
|
(swap! local assoc :edition false)
|
||||||
(st/emit! (dw/end-rename-shape)))
|
(st/emit! (dw/end-rename-shape)))
|
||||||
|
|
||||||
|
@ -124,6 +118,8 @@
|
||||||
selected? (contains? selected id)
|
selected? (contains? selected id)
|
||||||
container? (or (= (:type item) :frame) (= (:type item) :group))
|
container? (or (= (:type item) :frame) (= (:type item) :group))
|
||||||
|
|
||||||
|
disable-drag (mf/use-state false)
|
||||||
|
|
||||||
expanded-iref (mf/use-memo
|
expanded-iref (mf/use-memo
|
||||||
(mf/deps id)
|
(mf/deps id)
|
||||||
(make-collapsed-iref id))
|
(make-collapsed-iref id))
|
||||||
|
@ -203,6 +199,7 @@
|
||||||
:on-drop on-drop
|
:on-drop on-drop
|
||||||
:on-drag on-drag
|
:on-drag on-drag
|
||||||
:on-hold on-hold
|
:on-hold on-hold
|
||||||
|
:disabled @disable-drag
|
||||||
:detect-center? container?
|
:detect-center? container?
|
||||||
:data {:id (:id item)
|
:data {:id (:id item)
|
||||||
:index index
|
:index index
|
||||||
|
@ -229,7 +226,9 @@
|
||||||
:on-click select-shape
|
:on-click select-shape
|
||||||
:on-double-click #(dom/stop-propagation %)}
|
:on-double-click #(dom/stop-propagation %)}
|
||||||
[:& element-icon {:shape item}]
|
[:& element-icon {:shape item}]
|
||||||
[:& layer-name {:shape item}]
|
[:& layer-name {:shape item
|
||||||
|
:on-start-edit #(reset! disable-drag true)
|
||||||
|
:on-stop-edit #(reset! disable-drag false)}]
|
||||||
|
|
||||||
[:div.element-actions
|
[:div.element-actions
|
||||||
[:div.toggle-element {:class (when (:hidden item) "selected")
|
[:div.toggle-element {:class (when (:hidden item) "selected")
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue