From 4d021f583d71df667d6d452b7f678fc03ad00a9b Mon Sep 17 00:00:00 2001 From: Tienson Qin Date: Thu, 15 Sep 2022 00:11:09 +0800 Subject: [PATCH] feat: add path and no-children options for block embeds --- src/main/frontend/components/block.cljs | 47 ++++++++++++++++--------- src/main/frontend/dicts.cljc | 32 ++++++++--------- 2 files changed, 47 insertions(+), 32 deletions(-) diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index 4e642d67e9..415a7d4e87 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -771,23 +771,30 @@ (.stopPropagation e) (editor-handler/edit-block! config :max (:block/uuid config)))) +(declare breadcrumb-with-container) (rum/defc block-embed < rum/reactive db-mixins/query - [config uuid] - (when-let [block (db/entity [:block/uuid uuid])] - (let [blocks (db/get-paginated-blocks (state/get-current-repo) (:db/id block) - {:scoped-block-id (:db/id block)})] + [config uuid arguments] + (when-let [block (db/pull [:block/uuid uuid])] + (let [no-children? (contains? arguments "no-children") + path? (contains? arguments "path") + config' (cond-> + (assoc config + :db/id (:db/id block) + :id (str uuid) + :embed-id uuid + :embed? true + :embed-parent (:block config) + :ref? false + :no-children? no-children? + :breadcrumb-show? path?) + path? + (assoc :show-page? true))] [:div.color-level.embed-block.bg-base-2 {:style {:z-index 2} - :on-double-click #(edit-parent-block % config) + :on-double-click #(edit-parent-block % config') :on-mouse-down (fn [e] (.stopPropagation e))} [:div.px-3.pt-1.pb-2 - (blocks-container blocks (assoc config - :db/id (:db/id block) - :id (str uuid) - :embed-id uuid - :embed? true - :embed-parent (:block config) - :ref? false))]]))) + (breadcrumb-with-container block config')]]))) (rum/defc page-embed < rum/reactive db-mixins/query [config page-name] @@ -1234,7 +1241,7 @@ (block-ref/string-block-ref? a) (when-let [s (-> a block-ref/get-string-block-ref-id string/trim)] (when-let [id (some-> s parse-uuid)] - (block-embed (assoc config :link-depth (inc link-depth)) id))) + (block-embed (assoc config :link-depth (inc link-depth)) id (set (rest arguments))))) :else ;TODO: maybe collections? nil))) @@ -2669,7 +2676,8 @@ (when @*show-right-menu? (block-right-menu config block edit?))] - (block-children config block children collapsed?) + (when-not (:no-children? config) + (block-children config block children collapsed?)) (dnd-separator-wrapper block block-id slide? false false)])) @@ -3429,15 +3437,22 @@ navigating-block (not= (:db/id (:block/parent (::initial-block state))) (:db/id (:block/parent navigating-block-entity)))) - blocks (if navigated? + blocks (cond + navigated? (let [block navigating-block-entity] (db/get-paginated-blocks repo (:db/id block) {:scoped-block-id (:db/id block)})) + + (:embed? config) + (db/get-paginated-blocks repo (:db/id block) + {:scoped-block-id (:db/id block)}) + + :else [block])] [:div (when (:breadcrumb-show? config) (breadcrumb config (state/get-current-repo) (or navigating-block (:block/uuid block)) - {:show-page? false + {:show-page? (or (:show-page? config) false) :navigating-block *navigating-block})) (blocks-container blocks (assoc config :breadcrumb-show? false diff --git a/src/main/frontend/dicts.cljc b/src/main/frontend/dicts.cljc index ce216f9c9f..1abb8b8dde 100644 --- a/src/main/frontend/dicts.cljc +++ b/src/main/frontend/dicts.cljc @@ -143,7 +143,7 @@ :content/cut "Cut" :content/make-todos "Make {1}s" :content/copy-block-ref "Copy block ref" - :content/copy-block-emebed "Copy block embed" + :content/copy-block-embed "Copy block embed" :content/focus-on-block "Focus on block" :content/open-in-sidebar "Open in sidebar" :content/copy-as-json "Copy as JSON" @@ -541,7 +541,7 @@ :sync-from-local-files-detail "Änderungen aus lokalen Dateien importieren" :themes "Themes" :command-palette/prompt "Befehl eingeben" - :content/copy-block-emebed "Blockeinbettung kopieren" + :content/copy-block-embed "Blockeinbettung kopieren" :help/awesome-logseq "Awesome Logseq" :help/roadmap "Roadmap" :help/shortcut-page-title "Tastaturbefehl" @@ -722,7 +722,7 @@ :content/click-to-edit "Klik om te bewerken" :content/copy "Kopieer" :content/copy-as-json "Kopieer als JSON" - :content/copy-block-emebed "Kopieer blok embed" + :content/copy-block-embed "Kopieer blok embed" :content/copy-block-ref "Kopieer blok ref" :content/cut "Knip" :content/focus-on-block "Concentreer op blok" @@ -1163,7 +1163,7 @@ :export-datascript-edn "导出 datascript EDN" :export-edn "导出为 EDN" :export-public-pages "导出公开页" - :content/copy-block-emebed "复制内嵌块" + :content/copy-block-embed "复制内嵌块" :help/awesome-logseq "绝妙的 Logseq" :help/forum-community "论坛讨论" :linked-references/filter-search "在链接的页面内搜索" @@ -1876,7 +1876,7 @@ :content/cut "Cortar" :content/make-todos "Hacer {1}s" :content/copy-block-ref "Copiar referencia de bloque" - :content/copy-block-emebed "Copiar bloque a incrustar (embed)" + :content/copy-block-embed "Copiar bloque a incrustar (embed)" :content/focus-on-block "Enfocar en bloque" :content/open-in-sidebar "Abrir en barra lateral" :content/copy-as-json "Copiar como JSON" @@ -2192,7 +2192,7 @@ :content/cut "Klipp ut" :content/make-todos "Lag {1}s" :content/copy-block-ref "Kopier blokkreferanse" - :content/copy-block-emebed "Kopier innebygging av blokk" + :content/copy-block-embed "Kopier innebygging av blokk" :content/focus-on-block "Fokuser på blokk" :content/open-in-sidebar "Åpne i sidefeltet" :content/copy-as-json "Kopier som JSON" @@ -2620,7 +2620,7 @@ :remove-orphaned-pages "Remover páginas órfãs" :sync-from-local-files "Recarregar arquivos" :sync-from-local-files-detail "Importar modificações de arquivos" - :content/copy-block-emebed "Copiar bloco para incorporar" + :content/copy-block-embed "Copiar bloco para incorporar" :left-side-bar/nav-favorites "Favoritos" :left-side-bar/nav-recent-pages "Recentes" :left-side-bar/nav-shortcuts "Atalhos" @@ -2703,7 +2703,7 @@ :settings-page/edit-export-css "Editar export.css" :settings-page/enable-flashcards "Flashcards" :settings-page/export-theme "Exportar Tema" - + :discourse-title "Nosso fórum!" :importing "Importando" :asset/copy "Copiar imagem" @@ -3025,7 +3025,7 @@ :settings-of-plugins "Configurações dos plugins" :sync-from-local-changes-detected "Atualizar detecta e processa arquivos modificados em seu disco e que são diferentes do conteúdo atual da página do Logseq. Continuar?" :type "Tipo" - :content/copy-block-emebed "Copiar bloco para incorporar" + :content/copy-block-embed "Copiar bloco para incorporar" :graph/persist "O Logseq está sincronizando seu status interno, aguarde alguns segundos." :graph/persist-error "Falha na sincronização do status interno." @@ -3046,7 +3046,7 @@ :settings-page/export-theme "Exportar tema" :settings-page/network-proxy "Proxy de rede" :settings-page/plugin-system "Sistema de plugins" - + :discourse-title "Nosso fórum!" :importing "Importando" :asset/copy "Copiar imagem" @@ -3195,7 +3195,7 @@ :content/cut "Вырезать" :content/make-todos "Создать {1}" :content/copy-block-ref "Копировать ссылку блока" - :content/copy-block-emebed "Копировать встроенный блок" + :content/copy-block-embed "Копировать встроенный блок" :content/focus-on-block "Фокус на блоке" :content/open-in-sidebar "Открыть в боковой панели" :content/copy-as-json "Копировать как JSON" @@ -3524,7 +3524,7 @@ :content/cut "カット" :content/make-todos "Make {1}s" :content/copy-block-ref "ブロック参照をコピー" - :content/copy-block-emebed "ブロック埋め込みをコピー" + :content/copy-block-embed "ブロック埋め込みをコピー" :content/focus-on-block "ブロック上でフォーカス" :content/open-in-sidebar "サイドバーで開く" :content/copy-as-json "JSON形式でコピー" @@ -3846,7 +3846,7 @@ :content/cut "Taglia" :content/make-todos "Crea {1}" :content/copy-block-ref "Copia riferimento di blocco" - :content/copy-block-emebed "Copia blocco incorporato" + :content/copy-block-embed "Copia blocco incorporato" :content/focus-on-block "Focus sul blocco" :content/open-in-sidebar "Apri nella barra laterale" :content/copy-as-json "Copia come JSON" @@ -4179,7 +4179,7 @@ :content/cut "Kes" :content/make-todos "{1} yap" :content/copy-block-ref "Blok referansını kopyala" - :content/copy-block-emebed "Blok eklemesini kopyala" + :content/copy-block-embed "Blok eklemesini kopyala" :content/focus-on-block "Bloğa odaklan" :content/open-in-sidebar "Kenar çubuğunda aç" :content/copy-as-json "JSON olarak kopyala" @@ -4513,7 +4513,7 @@ :content/cut "잘라내기" :content/make-todos "{1} 만들기" :content/copy-block-ref "블록 주소 복사" - :content/copy-block-emebed "블록 임베드 복사" + :content/copy-block-embed "블록 임베드 복사" :content/focus-on-block "블록 포커스" :content/open-in-sidebar "사이드바에서 열기" :content/copy-as-json "JSON으로 복사" @@ -4841,7 +4841,7 @@ :content/cut "Wytnij" :content/make-todos "Stwórz {1}s" :content/copy-block-ref "Kopiuje ref bloku" - :content/copy-block-emebed "Kopiuj blok jako embed" + :content/copy-block-embed "Kopiuj blok jako embed" :content/focus-on-block "Skup się na bloku" :content/open-in-sidebar "Otwórz w panelu bocznym" :content/copy-as-json "Kopiuj jako JSON"