fix: change last-saved-cursor to atom to avoid global state changes

experiment/tanstack-table
Tienson Qin 2024-06-03 13:33:21 +08:00
parent d7d4a025be
commit 2abe37c987
1 changed files with 10 additions and 4 deletions

View File

@ -126,7 +126,7 @@
:editor/action (atom nil) :editor/action (atom nil)
:editor/action-data nil :editor/action-data nil
;; With label or other data ;; With label or other data
:editor/last-saved-cursor nil :editor/last-saved-cursor (atom {})
:editor/editing? (atom {}) :editor/editing? (atom {})
:editor/in-composition? false :editor/in-composition? false
:editor/content (atom {}) :editor/content (atom {})
@ -1337,9 +1337,14 @@ Similar to re-frame subscriptions"
(doseq [item items] (doseq [item items]
(set-state! [:ui/sidebar-collapsed-blocks item] collapsed?)))) (set-state! [:ui/sidebar-collapsed-blocks item] collapsed?))))
(defn clear-editor-last-pos!
[]
(set-state! :editor/last-saved-cursor {}))
(defn clear-edit! (defn clear-edit!
[] []
(set-state! :editor/editing? {}) (set-state! :editor/editing? {})
(clear-editor-last-pos!)
(set-state! :editor/cursor-range nil) (set-state! :editor/cursor-range nil)
(set-state! :editor/content {}) (set-state! :editor/content {})
(set-state! :editor/block nil) (set-state! :editor/block nil)
@ -1352,17 +1357,18 @@ Similar to re-frame subscriptions"
(defn set-editor-last-pos! (defn set-editor-last-pos!
[new-pos] [new-pos]
(set-state! [:editor/last-saved-cursor (:block/uuid (get-edit-block))] new-pos)) (update-state! :editor/last-saved-cursor
(fn [m] (assoc m (:block/uuid (get-edit-block)) new-pos))))
(defn get-editor-last-pos (defn get-editor-last-pos
[] []
(get-in @state [:editor/last-saved-cursor (:block/uuid (get-edit-block))])) (get @(:editor/last-saved-cursor @state) (:block/uuid (get-edit-block))))
(defn set-block-content-and-last-pos! (defn set-block-content-and-last-pos!
[edit-input-id content new-pos] [edit-input-id content new-pos]
(when edit-input-id (when edit-input-id
(set-edit-content! edit-input-id content) (set-edit-content! edit-input-id content)
(set-state! [:editor/last-saved-cursor (:block/uuid (get-edit-block))] new-pos))) (set-editor-last-pos! new-pos)))
(defn set-theme-mode! (defn set-theme-mode!
[mode] [mode]