From 478f61f57d766d30b1ce1fcb9982f8bf6a9f678c Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Fri, 11 Aug 2023 11:25:58 +0800 Subject: [PATCH] fix: can't backspace to delete block property value --- .../frontend/components/property/value.cljs | 13 +++++---- .../frontend/modules/outliner/datascript.cljs | 27 +++++++++++-------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/src/main/frontend/components/property/value.cljs b/src/main/frontend/components/property/value.cljs index a60004efad..bf57eb89c0 100644 --- a/src/main/frontend/components/property/value.cljs +++ b/src/main/frontend/components/property/value.cljs @@ -333,11 +333,14 @@ :editor-box editor-box :editor-opts editor-opts :in-property? true})]) - (if multiple-values? - (property-handler/delete-property-value! repo block (:block/uuid property) value) - (property-handler/remove-block-property! repo - (:block/uuid block) - (:block/uuid property)))) + (do + (if multiple-values? + (property-handler/delete-property-value! repo block (:block/uuid property) value) + (property-handler/remove-block-property! repo + (:block/uuid block) + (:block/uuid property))) + (exit-edit-property) + nil)) (inline-text {} :markdown (str value)))))]))))) diff --git a/src/main/frontend/modules/outliner/datascript.cljs b/src/main/frontend/modules/outliner/datascript.cljs index d1949d76b1..7b755151f5 100644 --- a/src/main/frontend/modules/outliner/datascript.cljs +++ b/src/main/frontend/modules/outliner/datascript.cljs @@ -92,17 +92,22 @@ (let [id (:db/id ref) block-content (property-util/remove-properties (:block/format block) (:block/content block)) - new-content (-> (:block/content ref) - (string/replace (re-pattern (util/format "(?i){{embed \\(\\(%s\\)\\)\\s?}}" (str (:block/uuid block)))) - block-content) - (string/replace (block-ref/->block-ref (str (:block/uuid block))) - block-content))] - {:tx [[:db/retract (:db/id ref) :block/refs (:db/id block)] - [:db/retract (:db/id ref) :block/path-refs (:db/id block)] - [:db/add id :block/content new-content]] - :revert-tx [[:db/add (:db/id ref) :block/refs (:db/id block)] - [:db/add (:db/id ref) :block/path-refs (:db/id block)] - [:db/add id :block/content (:block/content ref)]]})) refs))) + new-content (some-> (:block/content ref) + (string/replace (re-pattern (util/format "(?i){{embed \\(\\(%s\\)\\)\\s?}}" (str (:block/uuid block)))) + block-content) + (string/replace (block-ref/->block-ref (str (:block/uuid block))) + block-content)) + tx (cond-> + [[:db/retract (:db/id ref) :block/refs (:db/id block)] + [:db/retract (:db/id ref) :block/path-refs (:db/id block)]] + new-content + (conj [:db/add id :block/content new-content])) + revert-tx (cond-> + [[:db/add (:db/id ref) :block/refs (:db/id block)] + [:db/add (:db/id ref) :block/path-refs (:db/id block)]] + (:block/content ref) + (conj [:db/add id :block/content (:block/content ref)]))] + {:tx tx :revert-tx revert-tx})) refs))) (apply concat)) retracted-tx' (mapcat :tx retracted-tx) revert-tx (mapcat :revert-tx retracted-tx)]