refactor: block-children use block-list too

This commit is contained in:
Tienson Qin
2023-08-16 01:38:59 +08:00
parent cef72a1463
commit be85fcdd3e
2 changed files with 12 additions and 18 deletions

View File

@@ -1716,6 +1716,7 @@
:else
(when uuid (route-handler/redirect-to-page! uuid))))
(declare block-list)
(rum/defc block-children < rum/reactive
[config block children collapsed?]
(let [ref? (:ref? config)
@@ -1730,18 +1731,12 @@
{:on-click (fn [_]
(editor-handler/toggle-open-block-children! (:block/uuid block)))}]
[:div.block-children.w-full {:style {:display (if collapsed? "none" "")}}
(for [child children]
(when (map? child)
(let [child (dissoc child :block/meta)
child (or (:block/link child) child)
config (cond->
(-> config
(assoc :block/uuid (:block/uuid child))
(dissoc :breadcrumb-show? :embed-parent))
(or ref? query?)
(assoc :ref-query-child? true))]
(rum/with-key (block-container config child)
(str (:blocks-container-id config) "-" (:block/uuid child))))))]])))
(let [config' (cond-> (dissoc config :breadcrumb-show? :embed-parent)
(or ref? query?)
(assoc :ref-query-child? true)
true
(assoc :block-children? true))]
(block-list config' children))]])))
(defn- block-content-empty?
[{:block/keys [properties title body]}]
@@ -3348,10 +3343,10 @@
(defn- block-item
[config blocks idx item]
(let [item (or (:block/link item) item)
item (->
(dissoc item :block/meta)
(assoc :block.temp/top? (zero? idx)
:block.temp/bottom? (= (count blocks) (inc idx))))
item (cond-> (dissoc item :block/meta)
(not (:block-children? config))
(assoc :block.temp/top? (zero? idx)
:block.temp/bottom? (= (count blocks) (inc idx))))
config (assoc config :block/uuid (:block/uuid item))]
(rum/with-key (block-container config item)
(str (:blocks-container-id config) "-" (:block/uuid item)))))

View File

@@ -438,8 +438,7 @@
(let [{:keys [block value id config]} state
value (if (string? block-value) block-value value)
block-id (:block/uuid block)
block (or (db/pull [:block/uuid block-id])
block)
block (or (db/pull [:block/uuid block-id]) block)
block-self? (block-self-alone-when-insert? config block-id)
input (gdom/getElement (state/get-edit-input-id))
selection-start (util/get-selection-start input)