|  | @@ -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)))}
 |