|
|
@@ -43,42 +43,44 @@
|
|
|
(let [*last-request (atom nil)]
|
|
|
(defn- undo-aux!
|
|
|
[e]
|
|
|
- (state/set-state! :editor/op :undo)
|
|
|
- (p/do!
|
|
|
- @*last-request
|
|
|
- (when-let [repo (state/get-current-repo)]
|
|
|
- (let [current-page-uuid-str (some->> (page-util/get-latest-edit-page-id)
|
|
|
- db/entity
|
|
|
- :block/uuid
|
|
|
- str)]
|
|
|
- (when (db-transact/request-finished?)
|
|
|
- (util/stop e)
|
|
|
- (p/do!
|
|
|
- (state/set-state! [:editor/last-replace-ref-content-tx repo] nil)
|
|
|
- (editor/save-current-block!)
|
|
|
- (state/clear-editor-action!)
|
|
|
- (let [^js worker @state/*db-worker]
|
|
|
- (reset! *last-request (.undo worker repo current-page-uuid-str))
|
|
|
- (p/let [result @*last-request]
|
|
|
- (restore-cursor-and-state! result))))))))))
|
|
|
+ (when-not (:editor/code-block-context @state/state)
|
|
|
+ (state/set-state! :editor/op :undo)
|
|
|
+ (p/do!
|
|
|
+ @*last-request
|
|
|
+ (when-let [repo (state/get-current-repo)]
|
|
|
+ (let [current-page-uuid-str (some->> (page-util/get-latest-edit-page-id)
|
|
|
+ db/entity
|
|
|
+ :block/uuid
|
|
|
+ str)]
|
|
|
+ (when (db-transact/request-finished?)
|
|
|
+ (util/stop e)
|
|
|
+ (p/do!
|
|
|
+ (state/set-state! [:editor/last-replace-ref-content-tx repo] nil)
|
|
|
+ (editor/save-current-block!)
|
|
|
+ (state/clear-editor-action!)
|
|
|
+ (let [^js worker @state/*db-worker]
|
|
|
+ (reset! *last-request (.undo worker repo current-page-uuid-str))
|
|
|
+ (p/let [result @*last-request]
|
|
|
+ (restore-cursor-and-state! result)))))))))))
|
|
|
(defonce undo! (debounce undo-aux! 20))
|
|
|
|
|
|
(let [*last-request (atom nil)]
|
|
|
(defn- redo-aux!
|
|
|
[e]
|
|
|
- (state/set-state! :editor/op :redo)
|
|
|
- (p/do!
|
|
|
- @*last-request
|
|
|
- (when-let [repo (state/get-current-repo)]
|
|
|
- (let [current-page-uuid-str (some->> (page-util/get-latest-edit-page-id)
|
|
|
- db/entity
|
|
|
- :block/uuid
|
|
|
- str)]
|
|
|
- (when (db-transact/request-finished?)
|
|
|
- (util/stop e)
|
|
|
- (state/clear-editor-action!)
|
|
|
- (let [^js worker @state/*db-worker]
|
|
|
- (reset! *last-request (.redo worker repo current-page-uuid-str))
|
|
|
- (p/let [result @*last-request]
|
|
|
- (restore-cursor-and-state! result)))))))))
|
|
|
+ (when-not (:editor/code-block-context @state/state)
|
|
|
+ (state/set-state! :editor/op :redo)
|
|
|
+ (p/do!
|
|
|
+ @*last-request
|
|
|
+ (when-let [repo (state/get-current-repo)]
|
|
|
+ (let [current-page-uuid-str (some->> (page-util/get-latest-edit-page-id)
|
|
|
+ db/entity
|
|
|
+ :block/uuid
|
|
|
+ str)]
|
|
|
+ (when (db-transact/request-finished?)
|
|
|
+ (util/stop e)
|
|
|
+ (state/clear-editor-action!)
|
|
|
+ (let [^js worker @state/*db-worker]
|
|
|
+ (reset! *last-request (.redo worker repo current-page-uuid-str))
|
|
|
+ (p/let [result @*last-request]
|
|
|
+ (restore-cursor-and-state! result))))))))))
|
|
|
(defonce redo! (debounce redo-aux! 20))
|