mirror of
https://github.com/penpot/penpot.git
synced 2025-03-15 17:21:17 -05:00
✨ Autoselect all text on enter edition mode.
This commit is contained in:
parent
cf05980dae
commit
6b9ed0c5a3
2 changed files with 18 additions and 4 deletions
|
@ -17,7 +17,7 @@
|
|||
[uxbox.main.fonts :as fonts]
|
||||
[uxbox.main.data.workspace.common :as dwc]
|
||||
["slate-react" :as rslate]
|
||||
["slate" :as slate :refer [Editor Transforms Text]]))
|
||||
["slate" :as slate :refer [Editor Node Transforms Text]]))
|
||||
|
||||
(defn create-editor
|
||||
[]
|
||||
|
@ -36,12 +36,21 @@
|
|||
|
||||
(defn- calculate-full-selection
|
||||
[editor]
|
||||
(let [children (obj/get editor "children")
|
||||
paragraphs (obj/get-in children [0 "children" 0 "children"])]
|
||||
(let [children (obj/get editor "children")
|
||||
paragraphs (obj/get-in children [0 "children" 0 "children"])
|
||||
lastp (aget paragraphs (dec (alength paragraphs)))
|
||||
lastptxt (.string Node lastp)]
|
||||
#js {:anchor #js {:path #js [0 0 0]
|
||||
:offset 0}
|
||||
:focus #js {:path #js [0 0 (dec (alength paragraphs))]
|
||||
:offset 1}}))
|
||||
:offset (alength lastptxt)}}))
|
||||
|
||||
(defn- editor-select-all!
|
||||
[editor]
|
||||
(let [children (obj/get editor "children")
|
||||
paragraphs (obj/get-in children [0 "children" 0 "children"])
|
||||
range (calculate-full-selection editor)]
|
||||
(.select Transforms editor range)))
|
||||
|
||||
(defn- editor-set!
|
||||
([editor props]
|
||||
|
|
|
@ -273,6 +273,10 @@
|
|||
(events/unlistenByKey lkey1)
|
||||
(events/unlistenByKey lkey2))))
|
||||
|
||||
on-focus
|
||||
(fn [event]
|
||||
(dwt/editor-select-all! editor))
|
||||
|
||||
on-change
|
||||
(mf/use-callback
|
||||
(fn [val]
|
||||
|
@ -291,6 +295,7 @@
|
|||
[:> rslate/Editable
|
||||
{:auto-focus "true"
|
||||
:spell-check "false"
|
||||
:on-focus on-focus
|
||||
:class "rich-text"
|
||||
:render-element render-element
|
||||
:render-leaf render-text
|
||||
|
|
Loading…
Add table
Reference in a new issue