Browse Source

enhance(capacitor): filtered pages

charlie 6 months ago
parent
commit
38177d4038
2 changed files with 25 additions and 10 deletions
  1. 24 9
      src/main/capacitor/app.cljs
  2. 1 1
      src/main/capacitor/handler.cljs

+ 24 - 9
src/main/capacitor/app.cljs

@@ -12,6 +12,7 @@
             [capacitor.components.ui :as ui]
             [frontend.db-mixins :as db-mixins]
             [frontend.state :as fstate]
+            [frontend.db.utils :as db-util]
             [logseq.db :as ldb]
             [capacitor.pages.settings :as settings]))
 
@@ -39,38 +40,52 @@
 (rum/defc journals-list < rum/reactive db-mixins/query
   []
   (let [journals (sub-journals)]
-
-    [:pre
-     (prn-str journals)]))
+    [:ul
+     (for [journal-id journals]
+       (let [journal (db-util/entity journal-id)]
+         [::li.font-mono.flex.items-center.py-1.active:opacity-50.active:underline.whitespace-nowrap
+          {:on-click #(pages-util/nav-to-block! journal {:reload-pages! (fn [] ())})}
+          (ionic/tabler-icon "calendar")
+          [:span.pl-1 (:block/title journal)]]))]))
 
 (rum/defc home []
   (let [[all-pages set-all-pages!] (rum/use-state [])
-        [reload set-reload!] (rum/use-state 0)]
+        [reload set-reload!] (rum/use-state 0)
+        [filtered-pages set-filtered-pages!] (rum/use-state [])]
 
     (rum/use-effect!
       (fn []
-        (set-all-pages! (handler/get-all-pages))
+        (set-all-pages! (handler/local-all-pages))
         #())
       [reload])
 
+    (rum/use-effect!
+      (fn []
+        (let [pages (filterv (fn [page]
+                               (let [ident (some-> (:block/tags page) first :db/ident)]
+                                 (not (contains? #{:logseq.class/Journal :logseq.class/Property} ident))))
+                      all-pages)]
+          (set-filtered-pages! pages))
+        #())
+      [all-pages])
+
     (ionic/ion-content
       [:div.pt-6.px-6
        [:h1.text-3xl.font-mono.font-bold.py-2 "Current graph"]
        [:h2.py-1.text-lg (fstate/get-current-repo)]
 
        [:h1.text-3xl.font-mono.font-bold.py-2.mt-4 "Journals"]
-       [:ul.pt-2
-        (journals-list)]
+       (journals-list)
 
        [:div.flex.justify-between.items-center.pt-4
         [:h1.text-3xl.font-mono.font-bold.py-2
          "All pages"
-         [:small.text-xs.pl-2.opacity-50 (count all-pages)]]
+         [:small.text-xs.pl-2.opacity-50 (count filtered-pages)]]
 
         (ionic/ion-button {:size "small" :fill "clear" :on-click #(set-reload! (inc reload))}
           [:span {:slot "icon-only"} (ionic/tabler-icon "refresh")])]
        [:ul.mb-24.pt-2
-        (for [page all-pages]
+        (for [page filtered-pages]
           (let [ident (some-> (:block/tags page) first :db/ident)]
             [:li.font-mono.flex.items-center.py-1.active:opacity-50.active:underline.whitespace-nowrap
              {:on-click #(pages-util/nav-to-block! page {:reload-pages! (fn [] (set-reload! (inc reload)))})}

+ 1 - 1
src/main/capacitor/handler.cljs

@@ -19,5 +19,5 @@
 (defn ui-db []
   (db-conn/get-db))
 
-(defn get-all-pages []
+(defn local-all-pages []
   (some->> (ui-db) (ldb/get-all-pages) (sort-by :block/created-at) (reverse)))