|
|
@@ -29,11 +29,8 @@
|
|
|
[block-id]
|
|
|
(when-let [e (db/entity [:block/uuid block-id])]
|
|
|
(when-not (state/sub-async-query-loading (str (:db/id e) "-refs"))
|
|
|
- (let [page? (some? (:block/name e))
|
|
|
- ref-blocks (if page?
|
|
|
- (-> (db/get-page-referenced-blocks (:db/id e))
|
|
|
- db-utils/group-by-page)
|
|
|
- (db/get-block-referenced-blocks (:db/id e)))]
|
|
|
+ (let [ref-blocks (-> (db/get-referenced-blocks (:db/id e))
|
|
|
+ db-utils/group-by-page)]
|
|
|
(when (> (count ref-blocks) 0)
|
|
|
(let [ref-hiccup (block/->hiccup ref-blocks
|
|
|
{:id (str block-id)
|
|
|
@@ -47,11 +44,11 @@
|
|
|
{:hiccup ref-hiccup})]))))))
|
|
|
|
|
|
(rum/defc references-inner
|
|
|
- [page-name filters filtered-ref-blocks]
|
|
|
+ [page-entity filters filtered-ref-blocks]
|
|
|
(let [*ref (rum/use-ref nil)]
|
|
|
[:div.references-blocks.faster.fade-in {:ref *ref}
|
|
|
(let [ref-hiccup (block/->hiccup filtered-ref-blocks
|
|
|
- {:id page-name
|
|
|
+ {:id (:block/title page-entity)
|
|
|
:scroll-container *ref
|
|
|
:ref? true
|
|
|
:breadcrumb-show? true
|
|
|
@@ -59,10 +56,10 @@
|
|
|
:editor-box editor/box
|
|
|
:filters filters}
|
|
|
{})]
|
|
|
- (content/content page-name {:hiccup ref-hiccup}))]))
|
|
|
+ (content/content (:block/title page-entity) {:hiccup ref-hiccup}))]))
|
|
|
|
|
|
(rum/defc references-cp
|
|
|
- [page-entity page-name *filters total filter-n filtered-ref-blocks *ref-pages]
|
|
|
+ [page-entity *filters total filter-n filtered-ref-blocks *ref-pages]
|
|
|
(let [filters @*filters
|
|
|
threshold (state/get-linked-references-collapsed-threshold)
|
|
|
default-collapsed? (or (>= total threshold) (ldb/class? page-entity))
|
|
|
@@ -98,7 +95,7 @@
|
|
|
:size 22})]]
|
|
|
|
|
|
(fn []
|
|
|
- (references-inner page-name filters filtered-ref-blocks))
|
|
|
+ (references-inner page-entity filters filtered-ref-blocks))
|
|
|
|
|
|
{:default-collapsed? default-collapsed?
|
|
|
:title-trigger? true
|
|
|
@@ -119,22 +116,24 @@
|
|
|
(concat children (rest blocks))
|
|
|
(conj result fb))))))))
|
|
|
|
|
|
-(rum/defc references-aux <
|
|
|
+(rum/defc references-aux < rum/reactive db-mixins/query
|
|
|
{:should-update (fn [old-state new-state]
|
|
|
;; Re-render if only filters update
|
|
|
(not= (last (:rum/args old-state))
|
|
|
(last (:rum/args new-state))))}
|
|
|
[state repo page-entity *filters filters]
|
|
|
- (let [page-name (:block/name page-entity)
|
|
|
- *ref-pages (::ref-pages state)
|
|
|
+ (let [*ref-pages (::ref-pages state)
|
|
|
page-id (:db/id page-entity)
|
|
|
- ref-blocks (db/get-page-referenced-blocks page-id)
|
|
|
+ ref-blocks (db/get-referenced-blocks page-id)
|
|
|
+ _ (prn :debug :ref-blocks ref-blocks)
|
|
|
aliases (db/page-alias-set repo page-id)
|
|
|
aliases-exclude-self (set (remove #{page-id} aliases))
|
|
|
top-level-blocks (filter (fn [b] (some aliases (set (map :db/id (:block/refs b))))) ref-blocks)
|
|
|
top-level-blocks-ids (set (map :db/id top-level-blocks))
|
|
|
filtered-ref-blocks (->> (block-handler/filter-blocks ref-blocks filters)
|
|
|
(block-handler/get-filtered-ref-blocks-with-parents ref-blocks))
|
|
|
+ _ (prn :debug :ref-blocks ref-blocks
|
|
|
+ :filtered-ref-blocks filtered-ref-blocks)
|
|
|
total (count top-level-blocks)
|
|
|
filtered-top-blocks (filter (fn [b] (top-level-blocks-ids (:db/id b))) filtered-ref-blocks)
|
|
|
filter-n (count filtered-top-blocks)
|
|
|
@@ -164,7 +163,7 @@
|
|
|
(when (or (seq (:included filters)) (seq (:excluded filters)) (> filter-n 0))
|
|
|
[:div.references.page-linked.flex-1.flex-row
|
|
|
[:div.content.pt-6
|
|
|
- (references-cp page-entity page-name *filters total filter-n filtered-ref-blocks' *ref-pages)]])))
|
|
|
+ (references-cp page-entity *filters total filter-n filtered-ref-blocks' *ref-pages)]])))
|
|
|
|
|
|
(rum/defcs references* < rum/reactive db-mixins/query
|
|
|
(rum/local nil ::ref-pages)
|
|
|
@@ -172,25 +171,25 @@
|
|
|
(let [page (first (:rum/args state))]
|
|
|
(when page (db-async/<get-block-refs (state/get-current-repo) (:db/id page))))
|
|
|
(assoc state ::filters (atom nil)))}
|
|
|
- [state page-entity]
|
|
|
- (when page-entity
|
|
|
+ [state block-entity]
|
|
|
+ (when block-entity
|
|
|
(let [repo (state/get-current-repo)
|
|
|
*filters (::filters state)]
|
|
|
- (when page-entity
|
|
|
- (when-not (state/sub-async-query-loading (str (:db/id page-entity) "-refs"))
|
|
|
- (let [page-entity (db/sub-block (:db/id page-entity))
|
|
|
- filters (page-handler/get-filters page-entity)
|
|
|
+ (when block-entity
|
|
|
+ (when-not (state/sub-async-query-loading (str (:db/id block-entity) "-refs"))
|
|
|
+ (let [block-entity (db/sub-block (:db/id block-entity))
|
|
|
+ filters (page-handler/get-filters block-entity)
|
|
|
_ (when-not (= filters @*filters)
|
|
|
(reset! *filters filters))]
|
|
|
- (references-aux state repo page-entity *filters filters)))))))
|
|
|
+ (references-aux state repo block-entity *filters filters)))))))
|
|
|
|
|
|
(rum/defc references
|
|
|
- [page-entity]
|
|
|
+ [entity]
|
|
|
(ui/catch-error
|
|
|
(ui/component-error (if (config/db-based-graph? (state/get-current-repo))
|
|
|
"Linked References: Unexpected error."
|
|
|
"Linked References: Unexpected error. Please re-index your graph first."))
|
|
|
- (references* page-entity)))
|
|
|
+ (references* entity)))
|
|
|
|
|
|
(rum/defcs unlinked-references-aux
|
|
|
< rum/reactive db-mixins/query
|
|
|
@@ -198,7 +197,7 @@
|
|
|
(fn [state]
|
|
|
(let [*result (atom nil)
|
|
|
[page *n-ref] (:rum/args state)]
|
|
|
- (p/let [result (search/get-page-unlinked-refs (:db/id page))]
|
|
|
+ (p/let [result (search/get-unlinked-refs (:db/id page))]
|
|
|
(reset! *n-ref (count result))
|
|
|
(reset! *result result))
|
|
|
(assoc state ::result *result)))}
|