ソースを参照

fix: indent cursor position

Tienson Qin 3 年 前
コミット
ec29848427
2 ファイル変更9 行追加12 行削除
  1. 6 9
      src/main/frontend/handler/editor.cljs
  2. 3 3
      src/main/frontend/state.cljs

+ 6 - 9
src/main/frontend/handler/editor.cljs

@@ -175,15 +175,12 @@
 (defn restore-cursor-pos!
   [id markup]
   (when-let [node (gdom/getElement (str id))]
-    (let [last-edit-block (state/get-last-edit-block)
-          current-edit-block (state/get-edit-block)]
-      (when-let [cursor-range (state/get-cursor-range)]
-        (when-let [range cursor-range]
-          (let [pos (when (= (:db/id last-edit-block) (:db/id current-edit-block))
-                      (state/get-editor-last-pos))
-                pos (or pos (diff/find-position markup range))]
-            (cursor/move-cursor-to node pos)
-            (state/clear-editor-last-pos!)))))))
+    (let [cursor-range (state/get-cursor-range)
+          pos (or (state/get-editor-last-pos)
+                  (and cursor-range
+                       (diff/find-position markup cursor-range)))]
+      (cursor/move-cursor-to node pos)
+      (state/clear-editor-last-pos!))))
 
 (defn highlight-block!
   [block-uuid]

+ 3 - 3
src/main/frontend/state.cljs

@@ -916,7 +916,7 @@
 
 (defn set-editor-last-pos!
   [new-pos]
-  (set-state! :editor/last-saved-cursor new-pos))
+  (set-state! [:editor/last-saved-cursor (:block/uuid (get-edit-block))] new-pos))
 
 (defn clear-editor-last-pos!
   []
@@ -924,13 +924,13 @@
 
 (defn get-editor-last-pos
   []
-  (:editor/last-saved-cursor @state))
+  (get-in @state [:editor/last-saved-cursor (:block/uuid (get-edit-block))]))
 
 (defn set-block-content-and-last-pos!
   [edit-input-id content new-pos]
   (when edit-input-id
     (set-edit-content! edit-input-id content)
-    (set-state! :editor/last-saved-cursor new-pos)))
+    (set-state! [:editor/last-saved-cursor (:block/uuid (get-edit-block))] new-pos)))
 
 (defn set-theme!
   [theme]