| 123456789101112131415161718192021222324252627282930313233343536 | (ns frontend.components.class  (:require [frontend.components.block :as block]            [frontend.db.model :as model]            [frontend.state :as state]            [frontend.ui :as ui]            [rum.core :as rum]))(defn class-children-aux  [class {:keys [default-collapsed?] :as opts}]  (let [children (->> (:logseq.property/_parent class)                      ;; Disallow parent cycles                      (remove #(= (:db/id class) (:db/id %))))]    (when (seq children)      [:ul       (for [child (sort-by :block/title children)]         (let [title [:li.ml-2 (block/page-reference false (:block/title child) {:show-brackets? false} nil)]]           (if (seq (:logseq.property/_parent child))             (ui/foldable              title              (class-children-aux child opts)              {:default-collapsed? default-collapsed?})             title)))])))(rum/defc class-children  [class]  (when (seq (:logseq.property/_parent class))    (let [children-pages (set (model/get-structured-children (state/get-current-repo) (:db/id class)))          ;; Expand children if there are about a pageful of total blocks to display          default-collapsed? (> (count children-pages) 30)]      [:div.mt-4       (ui/foldable        [:div.font-medium.opacity-50         (str "Children (" (count children-pages) ")")]        [:div.ml-1.mt-2 (class-children-aux class {:default-collapsed? default-collapsed?})]        {:default-collapsed? false         :title-trigger? true})])))
 |