| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- (ns frontend.components.widgets
- (:require [frontend.context.i18n :refer [t]]
- [frontend.handler.page :as page-handler]
- [frontend.handler.web.nfs :as nfs]
- [frontend.modules.shortcut.core :as shortcut]
- [frontend.ui :as ui]
- [rum.core :as rum]
- [frontend.config :as config]
- [frontend.mobile.util :as mobile-util]
- [frontend.state :as state]))
- (rum/defc add-local-directory
- []
- [:div.flex.flex-col
- [:h1.title (t :on-boarding/add-graph)]
- (let [nfs-supported? (or (nfs/supported?) (mobile-util/native-platform?))]
- (if (mobile-util/native-platform?)
- [:div.text-sm
- (ui/button "Open a local directory"
- :on-click #(state/pub-event! [:graph/setup-a-repo]))
- [:hr]
- [:div
- [:div.font-bold.mb-2 "I need some help"]
- [:p "👋 Join our Forum to chat with the makers and our helpful community members."]
- (ui/button "Join the community"
- :href "https://discuss.logseq.com"
- :target "_blank")]]
- [:div.cp__widgets-open-local-directory
- [:div.select-file-wrap.cursor
- (when nfs-supported?
- {:on-click #(page-handler/ls-dir-files! shortcut/refresh!)})
- [:div
- [:h1.title (t :on-boarding/open-local-dir)]
- [:p (t :on-boarding/new-graph-desc-1)]
- [:p (t :on-boarding/new-graph-desc-2)]
- [:ul
- [:li (t :on-boarding/new-graph-desc-3)]
- [:li (t :on-boarding/new-graph-desc-4)]
- [:li (t :on-boarding/new-graph-desc-5)]]
- (when-not nfs-supported?
- (ui/admonition :warning
- [:p "It seems that your browser doesn't support the "
- [:a {:href "https://web.dev/file-system-access/"
- :target "_blank"}
- "new native filesystem API"]
- [:span ", please use any Chromium 86+ based browser like Chrome, Vivaldi, Edge, etc. Notice that the API doesn't support mobile browsers at the moment."]]))]]]))])
- (rum/defc android-permission-alert
- []
- (when (mobile-util/native-android?)
- [:div.flex.flex-col
- [:h1.title "Storage access permission"]
- [:div.text-sm
- [:div
- [:p "Logseq needs the permission to access your device storage. Read "
- [:a {:href "https://developer.android.com/about/versions/11/privacy/storage#all-files-access"
- :target "_blank"}
- "more"]
- "."]
- [:div
- (ui/button "Grant Permission"
- :on-click #(page-handler/ls-dir-files! shortcut/refresh!))]
- [:p.mb-1 "Note:"]
- [:ol
- [:li "We will never access files outside of your graph folders you choose."]
- [:li "If you have granted the permission, you don't need to do it again."]]]
- [:hr]]]))
- (rum/defcs add-graph <
- [state & {:keys [graph-types]
- :or {graph-types [:local]}}]
- (let [generate-f (fn [x]
- (case x
- :local
- [(rum/with-key (android-permission-alert)
- "android-permission-alert")
- (rum/with-key (add-local-directory)
- "add-local-directory")]
- nil))
- available-graph (->> (set graph-types)
- (keep generate-f)
- (vec)
- (interpose [:b.mt-10.mb-5.opacity-50 "OR"]))]
- [:div.p-8.flex.flex-col available-graph]))
- (rum/defc demo-graph-alert
- []
- (when (and (config/demo-graph?)
- (not config/publishing?))
- (ui/admonition
- :warning
- [:p (t :on-boarding/demo-graph)])))
|