| 
					
				 | 
			
			
				@@ -6,19 +6,20 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             [rum.core :as rum])) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defn class-children-aux 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  [class children-pages {:keys [default-collapsed?] :as opts}] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (when-not (contains? children-pages (:db/id class)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (let [children (:logseq.property/_parent class)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     (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 children-pages opts) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               {:default-collapsed? default-collapsed?}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              title)))])))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  [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] 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -29,6 +30,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       [:div.mt-4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        (ui/foldable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         [:h2.font-medium "Children (" (count children-pages) ")"] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [:div.mt-2.ml-1 (class-children-aux class children-pages {:default-collapsed? default-collapsed?})] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [:div.mt-2.ml-1 (class-children-aux class {:default-collapsed? default-collapsed?})] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         {:default-collapsed? false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          :title-trigger? true})]))) 
			 |