|
@@ -1343,11 +1343,18 @@
|
|
|
(doseq [[block value] blocks]
|
|
|
(save-block-if-changed! block value))))
|
|
|
|
|
|
+(defonce *auto-save-timeout (atom nil))
|
|
|
+(defn- clear-block-auto-save-timeout!
|
|
|
+ []
|
|
|
+ (when @*auto-save-timeout
|
|
|
+ (js/clearTimeout @*auto-save-timeout)))
|
|
|
+
|
|
|
(defn save-current-block!
|
|
|
"skip-properties? if set true, when editing block is likely be properties, skip saving"
|
|
|
([]
|
|
|
(save-current-block! {}))
|
|
|
([{:keys [force? skip-properties? current-block] :as opts}]
|
|
|
+ (clear-block-auto-save-timeout!)
|
|
|
;; non English input method
|
|
|
(when-not (or (state/editor-in-composition?)
|
|
|
(state/get-editor-action))
|
|
@@ -1803,15 +1810,13 @@
|
|
|
new-value (string/replace value full_text new-full-text)]
|
|
|
(save-block-aux! block new-value {})))))
|
|
|
|
|
|
-(defonce *auto-save-timeout (atom nil))
|
|
|
(defn edit-box-on-change!
|
|
|
[e block id]
|
|
|
(when (= (:db/id block) (:db/id (state/get-edit-block)))
|
|
|
(let [value (util/evalue e)
|
|
|
repo (state/get-current-repo)]
|
|
|
(state/set-edit-content! id value false)
|
|
|
- (when @*auto-save-timeout
|
|
|
- (js/clearTimeout @*auto-save-timeout))
|
|
|
+ (clear-block-auto-save-timeout!)
|
|
|
(block-handler/mark-last-input-time! repo)
|
|
|
(reset! *auto-save-timeout
|
|
|
(js/setTimeout
|
|
@@ -1821,7 +1826,7 @@
|
|
|
(not (and
|
|
|
(config/db-based-graph? repo)
|
|
|
(re-find #"#\S+" value))))
|
|
|
- ; don't auto-save for page's properties block
|
|
|
+ ; don't auto-save for page's properties block
|
|
|
(save-current-block! {:skip-properties? true})))
|
|
|
450)))))
|
|
|
|