mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 14:14:55 +00:00
enhance(capacitor): journals calendar
This commit is contained in:
@@ -14,6 +14,8 @@
|
||||
[frontend.db-mixins :as db-mixins]
|
||||
[frontend.state :as fstate]
|
||||
[frontend.db.utils :as db-util]
|
||||
[frontend.date :as frontend-date]
|
||||
[goog.date :as gdate]
|
||||
[logseq.db :as ldb]
|
||||
[capacitor.pages.settings :as settings]))
|
||||
|
||||
@@ -38,6 +40,24 @@
|
||||
(ionic/tabler-icon "calendar")
|
||||
[:span.pl-1 (:block/title journal)]]))]))
|
||||
|
||||
(rum/defc journals-calendar-modal
|
||||
[{:keys [close!]}]
|
||||
(ionic/ion-modal
|
||||
{:is-open true
|
||||
:mode "ios"
|
||||
:onWillDismiss (fn [] (close!))
|
||||
:class "journals-calendar-modal ion-datetime-button-overlay"}
|
||||
(ionic/ion-datetime {:presentation "date"
|
||||
:onIonChange (fn [^js e]
|
||||
(let [val (.-value (.-detail e))]
|
||||
(let [page-name (frontend-date/journal-name (gdate/Date. (js/Date. val)))
|
||||
nav-to-journal! #(pages-util/nav-to-block! % {:reload-pages! (fn [] ())})]
|
||||
(if-let [journal (handler/local-page page-name)]
|
||||
(nav-to-journal! journal)
|
||||
(-> (handler/<create-page! page-name)
|
||||
(p/then #(nav-to-journal! (handler/local-page page-name)))))
|
||||
(close!))))})))
|
||||
|
||||
(rum/defc create-page-input
|
||||
[{:keys [close! reload-pages!]}]
|
||||
(ionic/ion-alert
|
||||
@@ -65,6 +85,7 @@
|
||||
(let [[all-pages set-all-pages!] (rum/use-state [])
|
||||
[reload set-reload!] (rum/use-state 0)
|
||||
[page-input-open? set-page-input-open?] (rum/use-state false)
|
||||
[journal-calendar-open? set-journal-calendar-open?] (rum/use-state false)
|
||||
[filtered-pages set-filtered-pages!] (rum/use-state [])]
|
||||
|
||||
(rum/use-effect!
|
||||
@@ -91,9 +112,17 @@
|
||||
[: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"]
|
||||
[:div.flex.justify-between.items-center.mt-4
|
||||
[:h1.text-3xl.font-mono.font-bold.py-2 "Journals"]
|
||||
[:flex.gap-1
|
||||
(ionic/ion-button {:size "small" :fill "clear" :on-click #(set-journal-calendar-open? true)}
|
||||
[:span {:slot "icon-only"} (ionic/tabler-icon "calendar" {:size 22})])]]
|
||||
|
||||
(journals-list)
|
||||
|
||||
(when journal-calendar-open?
|
||||
(journals-calendar-modal {:close! #(set-journal-calendar-open? false)}))
|
||||
|
||||
[:div.flex.justify-between.items-center.pt-4
|
||||
[:h1.text-3xl.font-mono.font-bold.py-2
|
||||
"All pages"
|
||||
@@ -101,9 +130,10 @@
|
||||
|
||||
[:div.flex.gap-1
|
||||
(ionic/ion-button {:size "small" :fill "clear" :on-click #(set-page-input-open? true)}
|
||||
[:span {:slot "icon-only"} (ionic/tabler-icon "plus")])
|
||||
(ionic/ion-button {:size "small" :fill "clear" :on-click #(set-reload! (inc reload))}
|
||||
[:span {:slot "icon-only"} (ionic/tabler-icon "refresh")])]]
|
||||
[:span {:slot "icon-only"} (ionic/tabler-icon "file-plus" {:size 22})])
|
||||
;(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 filtered-pages]
|
||||
(let [ident (some-> (:block/tags page) first :db/ident)]
|
||||
|
||||
@@ -24,6 +24,9 @@
|
||||
(defn local-all-pages []
|
||||
(some->> (local-db) (ldb/get-all-pages) (sort-by :block/created-at) (reverse)))
|
||||
|
||||
(defn local-page [name]
|
||||
(ldb/get-page (local-db) name))
|
||||
|
||||
(defn sub-journals
|
||||
[]
|
||||
(-> (react/q (fstate/get-current-repo)
|
||||
|
||||
Reference in New Issue
Block a user