From 320ac8ad55ca5ffa109955d70a53c4b41e65b3af Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Wed, 25 Nov 2020 17:47:23 +0800 Subject: [PATCH] fix: don't render embed page when the current container is the same page --- src/main/frontend/components/block.cljs | 17 +++++++++-------- src/main/frontend/components/journal.cljs | 14 +++++++------- src/main/frontend/components/page.cljs | 4 ++-- src/main/frontend/components/reference.cljs | 16 +++++++--------- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index 4b6592c61..87c6d3c8c 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -321,19 +321,20 @@ [config page-name] (let [page-name (string/lower-case page-name) page-original-name (:page/original-name (db/entity [:page/name page-name])) - blocks (db/get-page-blocks (state/get-current-repo) page-name) current-page (state/get-current-page)] [:div.embed-page.py-2.my-2.px-3.bg-base-2 [:p [:code.mr-2 "Embed page:"] (page-cp config {:page/name page-name})] - (when (or - (not current-page) - (and current-page - (not= (string/lower-case current-page) page-name))) - (blocks-container blocks (assoc config - :embed? true - :ref? false)))])) + (when (and + (not= (string/lower-case (or current-page "")) + page-name) + (not= (string/lower-case (get config :id "")) + page-name)) + (let [blocks (db/get-page-blocks (state/get-current-repo) page-name)] + (blocks-container blocks (assoc config + :embed? true + :ref? false))))])) (defn- get-label-text [label] diff --git a/src/main/frontend/components/journal.cljs b/src/main/frontend/components/journal.cljs index bd873ffb1..2484a0eb5 100644 --- a/src/main/frontend/components/journal.cljs +++ b/src/main/frontend/components/journal.cljs @@ -21,7 +21,7 @@ (rum/defc blocks-inner < rum/static {:did-mount (fn [state] - (let [[blocks _ page] (:rum/args state) + (let [[blocks page] (:rum/args state) first-title (second (first (:block/title (first blocks)))) journal? (and (string? first-title) (date/valid-journal-title? first-title))] @@ -39,25 +39,25 @@ :error false))) state)} - [blocks encoded-page-name page document-mode?] + [blocks page document-mode?] (let [start-level (or (:block/level (first blocks)) 1) - config {:id encoded-page-name + config {:id page :start-level 2 :editor-box editor/box :document/mode? document-mode?}] (content/content - encoded-page-name + page {:hiccup (block/->hiccup blocks config {})}))) (rum/defc blocks-cp < rum/reactive db-mixins/query {} - [repo page encoded-page-name format] + [repo page format] (let [raw-blocks (db/get-page-blocks repo page) document-mode? (state/sub :document/mode?) blocks (->> (db/with-dummy-block raw-blocks format nil {:journal? true}) (db/with-block-refs-count repo))] - (blocks-inner blocks encoded-page-name page document-mode?))) + (blocks-inner blocks page document-mode?))) (rum/defc journal-cp < rum/reactive [[title format]] @@ -86,7 +86,7 @@ [:h1.title (util/capitalize-all title)]] - (blocks-cp repo page encoded-page-name format)) + (blocks-cp repo page format)) (page/today-queries repo today? false) diff --git a/src/main/frontend/components/page.cljs b/src/main/frontend/components/page.cljs index 2a5e1688d..6b599f059 100644 --- a/src/main/frontend/components/page.cljs +++ b/src/main/frontend/components/page.cljs @@ -66,7 +66,7 @@ {:journal? journal? :page-name page-name}) start-level (or (:block/level (first page-blocks)) 1) - hiccup-config {:id encoded-page-name + hiccup-config {:id page-name :start-level start-level :sidebar? sidebar? :block? block? @@ -74,7 +74,7 @@ hiccup-config (common-handler/config-with-document-mode hiccup-config) hiccup (block/->hiccup page-blocks hiccup-config {})] (rum/with-key - (content/content encoded-page-name + (content/content page-name {:hiccup hiccup :sidebar? sidebar?}) (str encoded-page-name "-hiccup")))) diff --git a/src/main/frontend/components/reference.cljs b/src/main/frontend/components/reference.cljs index 647800fbe..f300ea993 100644 --- a/src/main/frontend/components/reference.cljs +++ b/src/main/frontend/components/reference.cljs @@ -18,7 +18,6 @@ (let [block? (util/uuid-string? page-name) block-id (and block? (uuid page-name)) page-name (string/lower-case page-name) - encoded-page-name (util/url-encode page-name) journal? (date/valid-journal-title? (string/capitalize page-name)) ref-blocks (cond priority? @@ -44,13 +43,13 @@ "SCHEDULED AND DEADLINE")] [:div.references-blocks.mb-6 (let [ref-hiccup (block/->hiccup scheduled-or-deadlines - {:id (str encoded-page-name "-agenda") + {:id (str page-name "-agenda") :start-level 2 :ref? true :group-by-page? true :editor-box editor/box} {})] - (content/content encoded-page-name + (content/content page-name {:hiccup ref-hiccup}))])) (ui/foldable @@ -58,30 +57,29 @@ (str n-ref " Linked References"))] [:div.references-blocks (let [ref-hiccup (block/->hiccup ref-blocks - {:id encoded-page-name + {:id page-name :start-level 2 :ref? true :breadcrumb-show? true :group-by-page? true :editor-box editor/box} {})] - (content/content encoded-page-name + (content/content page-name {:hiccup ref-hiccup}))])]])))) (rum/defc unlinked-references-aux < rum/reactive db-mixins/query [page-name n-ref] - (let [ref-blocks (db/get-page-unlinked-references page-name) - encoded-page-name (util/url-encode page-name)] + (let [ref-blocks (db/get-page-unlinked-references page-name)] (reset! n-ref (count ref-blocks)) [:div.references-blocks (let [ref-hiccup (block/->hiccup ref-blocks - {:id (str encoded-page-name "-unlinked-") + {:id (str page-name "-unlinked-") :start-level 2 :ref? true :group-by-page? true :editor-box editor/box} {})] - (content/content encoded-page-name + (content/content page-name {:hiccup ref-hiccup}))])) (rum/defcs unlinked-references < rum/reactive