fix(editor): don't update block if there's no changes except the timestamps

pull/1018/head
Tienson Qin 2020-12-29 21:28:25 +08:00
parent bdd48fb3e8
commit 54da887557
3 changed files with 18 additions and 8 deletions

View File

@ -1055,7 +1055,7 @@
block-cp))))
(rum/defc properties-cp
[block]
[config block]
(let [properties (apply dissoc (:block/properties block) text/hidden-properties)]
(when (seq properties)
[:div.blocks-properties.text-sm.opacity-80.my-1.p-2
@ -1064,7 +1064,12 @@
[:div.my-1
[:b k]
[:span.mr-1 ":"]
(inline-text (:block/format block) (str v))])])))
(if (coll? v)
(let [v (->> (remove string/blank? v)
(filter string?))]
(for [v-item v]
(page-cp config {:page/name v-item})))
(inline-text (:block/format block) (str v)))])])))
(rum/defcs timestamp-cp < rum/reactive
(rum/local false ::show?)
@ -1169,7 +1174,7 @@
(let [hidden? (text/properties-hidden? properties)]
(not hidden?))
(not (:slide? config)))
(properties-cp block))
(properties-cp config block))
(when (and (not pre-block?) (seq body))
[:div.block-body {:style {:display (if collapsed? "none" "")}}

View File

@ -458,10 +458,8 @@
(medley/remove-keys (fn [k] (contains? (set remove-properties) k)) properties)
properties)
value (text/re-construct-block-properties value properties)
content-changed? (if auto-save?
(not= (text/remove-properties! (string/trim content))
(text/remove-properties! (string/trim value)))
(not= (string/trim content) (string/trim value)))]
content-changed? (not= (text/remove-timestamp-property! (string/trim content))
(text/remove-timestamp-property! (string/trim value)))]
(cond
content-changed?
(let [file (db/entity repo (:db/id file))]
@ -2065,4 +2063,3 @@
(defn periodically-save!
[]
(js/setInterval save-current-block-when-idle! 3000))

View File

@ -114,6 +114,14 @@
(and id (util/uuid-string? id)))))))]
(string/join "\n" lines)))
(defn remove-timestamp-property!
[content]
(let [lines (->> (string/split-lines content)
(remove #(let [s (string/lower-case (string/trim %))]
(or (string/starts-with? s ":created_at:")
(string/starts-with? s ":last_modified_at:")))))]
(string/join "\n" lines)))
(defn build-properties-str
[properties]
(when (seq properties)