mirror of
https://github.com/logseq/logseq.git
synced 2026-05-29 15:09:41 +00:00
enhance(editor): restore scroll position new paste in a long block
This commit is contained in:
@@ -403,17 +403,23 @@
|
||||
edit-content (gobj/get input "value")
|
||||
current-pos (cursor/pos input)
|
||||
prefix (subs edit-content 0 current-pos)
|
||||
surfix (subs edit-content current-pos)
|
||||
new-value (str prefix
|
||||
value
|
||||
(subs edit-content current-pos))
|
||||
surfix)
|
||||
new-pos (- (+ (count prefix)
|
||||
(count value)
|
||||
(or forward-pos 0))
|
||||
(or backward-pos 0))]
|
||||
(state/set-block-content-and-last-pos! id new-value new-pos)
|
||||
(cursor/move-cursor-to input new-pos)
|
||||
(when check-fn
|
||||
(check-fn new-value (dec (count prefix)) new-pos))))
|
||||
(state/set-edit-content! (state/get-edit-input-id)
|
||||
(str prefix value))
|
||||
;; HACK: save scroll-pos of current pos, then add trailing content
|
||||
(let [scroll-pos (.-scrollTop (gdom/getElement "main-content-container"))]
|
||||
(state/set-block-content-and-last-pos! id new-value new-pos)
|
||||
(cursor/move-cursor-to input new-pos)
|
||||
(set! (.-scrollTop (gdom/getElement "main-content-container")) scroll-pos)
|
||||
(when check-fn
|
||||
(check-fn new-value (dec (count prefix)) new-pos)))))
|
||||
|
||||
(defn simple-replace!
|
||||
[id value selected
|
||||
|
||||
Reference in New Issue
Block a user