Browse Source

fix: table rendering on sidebar

Tienson Qin 8 months ago
parent
commit
4d6592158b

+ 2 - 2
src/main/frontend/components/page.cljs

@@ -699,7 +699,7 @@
             (when-not (or whiteboard? linked-refs? (and block? (not db-based?)))
               [:div {:key "page-references"}
                (rum/with-key
-                 (reference/references page)
+                 (reference/references page {:sidebar? sidebar?})
                  (str title "-refs"))])
 
             (when-not block-or-whiteboard?
@@ -712,7 +712,7 @@
                           (or class-page? property-page?)
                           (and block? (not db-based?)))
               [:div {:key "page-unlinked-references"}
-               (reference/unlinked-references page)])])])
+               (reference/unlinked-references page {:sidebar? sidebar?})])])])
       [:div.opacity-75 "Page not found"])))
 
 (rum/defcs page-aux < rum/reactive

+ 1 - 1
src/main/frontend/components/query/view.cljs

@@ -41,7 +41,7 @@
      [result*])
     [:div.query-result.w-full
      (views/view
-      {:config {:custom-query? true}
+      {:config (assoc {:custom-query? true} :sidebar? (:sidebar? config))
        :title-key :views.table/live-query-title
        :view-entity view-entity
        :view-feature-type :query-result

+ 8 - 6
src/main/frontend/components/reference.cljs

@@ -51,7 +51,7 @@
         (block-linked-references-aux e)))))
 
 (rum/defc references-cp
-  [page-entity]
+  [page-entity config]
   (let [filters (db-view/get-filters (db/get-db) page-entity)
         reference-filter (fn [{:keys [ref-pages-count]}]
                            (shui/button
@@ -81,10 +81,11 @@
      {:view-parent page-entity
       :view-feature-type :linked-references
       :additional-actions [reference-filter]
-      :columns (views/build-columns {} [] {})})))
+      :columns (views/build-columns {} [] {})
+      :config config})))
 
 (rum/defc references
-  [entity]
+  [entity config]
   (when-let [id (:db/id entity)]
     (let [[has-references? set-has-references!] (hooks/use-state nil)]
       (hooks/use-effect!
@@ -99,10 +100,10 @@
          (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-cp entity))))))
+         (references-cp entity config))))))
 
 (rum/defc unlinked-references
-  [entity]
+  [entity config]
   (when-let [id (:db/id entity)]
     (let [[has-references? set-has-references!] (hooks/use-state nil)]
       (hooks/use-effect!
@@ -117,4 +118,5 @@
          {:view-parent entity
           :view-feature-type :unlinked-references
           :columns (views/build-columns {} [] {})
-          :foldable-options {:default-collapsed? true}})))))
+          :foldable-options {:default-collapsed? true}
+          :config config})))))

+ 7 - 7
src/main/frontend/components/views.cljs

@@ -1227,13 +1227,15 @@
       (item-render item'))))
 
 (rum/defc table-body < rum/static
-  [table option rows *scroller-ref *rows-wrap set-items-rendered!]
-  (let [[scrolling? set-scrolling!] (hooks/use-state false)]
+  [table option rows *scroller-ref set-items-rendered!]
+  (let [[scrolling? set-scrolling!] (hooks/use-state false)
+        sidebar? (get-in option [:config :sidebar?])]
     (when (seq rows)
       (ui/virtualized-list
        {:ref #(reset! *scroller-ref %)
-        :custom-scroll-parent (or (some-> (rum/deref *rows-wrap) (.closest ".sidebar-item-list"))
-                                  (gdom/getElement "main-content-container"))
+        :custom-scroll-parent (if sidebar?
+                                (first (dom/by-class "sidebar-item-list"))
+                                (gdom/getElement "main-content-container"))
         :compute-item-key (fn [idx]
                             (let [block-id (util/nth-safe rows idx)]
                               (str "table-row-" (:group-idx option) "-" block-id)))
@@ -1255,16 +1257,14 @@
 (rum/defc table-view < rum/static
   [table option row-selection *scroller-ref]
   (let [selected-rows (shui/table-get-selection-rows row-selection (:rows table))
-        *rows-wrap (rum/use-ref nil)
         [items-rendered? set-items-rendered!] (hooks/use-state false)]
     (shui/table
      (let [rows (:rows table)]
        [:div.ls-table-rows.content.overflow-x-auto.force-visible-scrollbar
-        {:ref *rows-wrap}
         [:div.relative
          (table-header table option selected-rows)
 
-         (table-body table option rows *scroller-ref *rows-wrap set-items-rendered!)
+         (table-body table option rows *scroller-ref set-items-rendered!)
 
          (when (and (get-in table [:data-fns :add-new-object!]) (or (empty? rows) items-rendered?))
            (shui/table-footer (add-new-row (:view-entity option) table)))]]))))