enhance(editor): restore scroll position new adding newline in a block

This commit is contained in:
Andelf
2023-05-15 17:42:41 +08:00
committed by Tienson Qin
parent 9f3337111d
commit 02aa600212

View File

@@ -2224,10 +2224,16 @@
s1 (subs value 0 selected-start)
s2 (subs value selected-end)]
(state/set-edit-content! (state/get-edit-input-id)
(str s1 insertion s2))
(cursor/move-cursor-to input (+ selected-start (count insertion)))))))
(str s1 insertion))
;; HACK: save scroll-pos of current pos, then add trailing content
(let [scroll-pos (.-scrollTop (gdom/getElement "main-content-container"))]
(state/set-edit-content! (state/get-edit-input-id)
(str s1 insertion s2))
(cursor/move-cursor-to input (+ selected-start (count insertion)))
(set! (.-scrollTop (gdom/getElement "main-content-container")) scroll-pos))))))
(defn- keydown-new-line
"Insert newline to current cursor position"
[]
(insert "\n"))