From 47f689345749d71a92c44b7ea347579a8529a40b Mon Sep 17 00:00:00 2001 From: Mega Yu Date: Thu, 13 Apr 2023 16:08:29 +0800 Subject: [PATCH] Fix the display issue caused by inconsistent page order and dbid order of blocks --- src/main/frontend/handler/editor.cljs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/frontend/handler/editor.cljs b/src/main/frontend/handler/editor.cljs index 0546cd6d43..281c2cf68e 100644 --- a/src/main/frontend/handler/editor.cljs +++ b/src/main/frontend/handler/editor.cljs @@ -990,7 +990,20 @@ block (db/entity [:block/uuid (first ids)])] (when block (let [html (export-html/export-blocks-as-html repo top-level-block-uuids nil) - copied-blocks (get-all-blocks-by-ids repo top-level-block-uuids)] + copied-blocks (get-all-blocks-by-ids repo top-level-block-uuids) + selected-blocks (dom/sel ".ls-block.selected.noselect") + selected-block-ids (->> selected-blocks + (reduce + (fn [selected-block-ids selected-block] + (let [selected-block-id (dom/attr selected-block "blockid")] + (if (some #(= selected-block-id %) selected-block-ids) + selected-block-ids + (reduce #(conj %1 (dom/attr %2 "blockid")) + (conj selected-block-ids selected-block-id) + (seq (dom/by-class selected-block "ls-block")))))) + []) + (map uuid)) + copied-blocks (sort-by #(.indexOf selected-block-ids (:block/uuid %)) copied-blocks)] (common-handler/copy-to-clipboard-without-id-property! (:block/format block) content (when html? html) copied-blocks)) (state/set-block-op-type! :copy) (notification/show! "Copied!" :success)))))