From 198aab788838c13968f005c653c5e430d5376a0d Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Mon, 3 Oct 2022 18:03:03 +0300 Subject: [PATCH 1/5] feat: add login button to alpha features --- src/main/frontend/components/settings.cljs | 21 ++++++++++++++++++--- src/main/frontend/dicts.cljc | 2 ++ 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index db12eabd52..3c8e2e514a 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -630,7 +630,7 @@ (defn sync-switcher-row [enabled?] (row-with-button-action - {:left-label (str (t :settings-page/sync) " 🔐") + {:left-label (t :settings-page/sync) :action (sync-enabled-switcher enabled?)})) (rum/defc whiteboards-enabled-switcher @@ -653,7 +653,8 @@ enable-encryption? (state/enable-encryption? current-repo) enable-flashcards? (state/enable-flashcards? current-repo) enable-sync? (state/enable-sync?) - enable-whiteboards? (state/enable-whiteboards? current-repo)] + enable-whiteboards? (state/enable-whiteboards? current-repo) + logged-in? (user-handler/logged-in?)] [:div.panel-wrap.is-features.mb-8 (journal-row enable-journals?) (when (not enable-journals?) @@ -677,7 +678,21 @@ (when-not web-platform? [:div [:hr] - [:h2.mb-4 "Alpha test (sponsors only)"] + [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start + [:label.flex.font-medium.leading-5 (ui/icon "lock" {:class "mr-1"}) (t :settings-page/alpha-features)] + [:div.mt-1.sm:mt-0.sm:col-span-2 + (if logged-in? + (user-handler/logged-in?) + [:div + (ui/button + [:span.flex.text-sm + (ui/icon "login" {:class "mr-1"}) + (t :login)] + {:class "p-1" + :on-click (fn [] + (state/close-settings!) + (js/window.open config/LOGIN-URL))}) + [:p.text-sm.opacity-50 (t :settings-page/login-prompt)]])]] [:div.flex.flex-col.gap-4 (sync-switcher-row enable-sync?) (whiteboards-switcher-row enable-whiteboards?)]])])) diff --git a/src/main/frontend/dicts.cljc b/src/main/frontend/dicts.cljc index 5a35c2326a..8459d55742 100644 --- a/src/main/frontend/dicts.cljc +++ b/src/main/frontend/dicts.cljc @@ -204,6 +204,8 @@ :settings-page/plugin-system "Plugins" :settings-page/enable-flashcards "Flashcards" :settings-page/network-proxy "Network proxy" + :settings-page/alpha-features "Alpha features" + :settings-page/login-prompt "To access new features before anyone else you must be a financial supporter or alpha tester of Logseq and therefore log in first." :settings-page/sync "Sync" :settings-page/enable-whiteboards "Whiteboards" :logseq "Logseq" From 5a3911db9aa1a3a1fdec79291ecb73f65b4b7c74 Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Tue, 4 Oct 2022 16:26:03 +0300 Subject: [PATCH 2/5] fix: icon size on command panel --- src/main/frontend/components/command_palette.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/frontend/components/command_palette.css b/src/main/frontend/components/command_palette.css index c5d7d7f4d2..d54385769b 100644 --- a/src/main/frontend/components/command_palette.css +++ b/src/main/frontend/components/command_palette.css @@ -53,6 +53,10 @@ .search-result { @apply text-sm font-medium flex items-baseline; } + + .ui__icon { + font-size: 16px; + } } &-input { From 187ffb7ff7f2d88a6f4bc52dad85cfb274bb19e9 Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Tue, 4 Oct 2022 19:23:16 +0300 Subject: [PATCH 3/5] chore: handle signed in state --- src/main/frontend/components/settings.cljs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index 3c8e2e514a..c1885728b8 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -676,13 +676,20 @@ (encryption-row enable-encryption?) (when-not web-platform? - [:div + [:<> [:hr] [:div.it.sm:grid.sm:grid-cols-3.sm:gap-4.sm:items-start - [:label.flex.font-medium.leading-5 (ui/icon "lock" {:class "mr-1"}) (t :settings-page/alpha-features)] + [:label.flex.font-medium.leading-5.self-start.mt-1 (ui/icon (if logged-in? "lock-open" "lock") {:class "mr-1"}) (t :settings-page/alpha-features)] [:div.mt-1.sm:mt-0.sm:col-span-2 (if logged-in? - (user-handler/logged-in?) + [:div + [:p (user-handler/email)] + [:p (ui/button + [:span.flex.text-sm + (ui/icon "logout" {:class "mr-1"}) + (t :logout)] + {:class "p-1" + :on-click user-handler/logout})]] [:div (ui/button [:span.flex.text-sm From 61d57f79218bbf2da83869ad07177077112fee84 Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Tue, 4 Oct 2022 19:37:37 +0300 Subject: [PATCH 4/5] fix: signed out styles --- src/main/frontend/components/settings.cljs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index c1885728b8..e3579139f0 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -683,7 +683,7 @@ [:div.mt-1.sm:mt-0.sm:col-span-2 (if logged-in? [:div - [:p (user-handler/email)] + (user-handler/email) [:p (ui/button [:span.flex.text-sm (ui/icon "logout" {:class "mr-1"}) @@ -701,6 +701,7 @@ (js/window.open config/LOGIN-URL))}) [:p.text-sm.opacity-50 (t :settings-page/login-prompt)]])]] [:div.flex.flex-col.gap-4 + {:class (when-not logged-in? "opacity-50 pointer-events-none cursor-not-allowed")} (sync-switcher-row enable-sync?) (whiteboards-switcher-row enable-whiteboards?)]])])) From cbd6b544140dd0d78149696847eadccb65e57c23 Mon Sep 17 00:00:00 2001 From: Konstantinos Kaloutas Date: Wed, 5 Oct 2022 12:25:48 +0300 Subject: [PATCH 5/5] refactor: add icon support to button component --- src/main/frontend/components/settings.cljs | 24 +++++-------- src/main/frontend/ui.cljs | 41 +++++++++++----------- 2 files changed, 30 insertions(+), 35 deletions(-) diff --git a/src/main/frontend/components/settings.cljs b/src/main/frontend/components/settings.cljs index e3579139f0..cb2e312ab9 100644 --- a/src/main/frontend/components/settings.cljs +++ b/src/main/frontend/components/settings.cljs @@ -684,24 +684,18 @@ (if logged-in? [:div (user-handler/email) - [:p (ui/button - [:span.flex.text-sm - (ui/icon "logout" {:class "mr-1"}) - (t :logout)] - {:class "p-1" - :on-click user-handler/logout})]] + [:p (ui/button (t :logout) {:class "p-1" + :icon "logout" + :on-click user-handler/logout})]] [:div - (ui/button - [:span.flex.text-sm - (ui/icon "login" {:class "mr-1"}) - (t :login)] - {:class "p-1" - :on-click (fn [] - (state/close-settings!) - (js/window.open config/LOGIN-URL))}) + (ui/button (t :login) {:class "p-1" + :icon "login" + :on-click (fn [] + (state/close-settings!) + (js/window.open config/LOGIN-URL))}) [:p.text-sm.opacity-50 (t :settings-page/login-prompt)]])]] [:div.flex.flex-col.gap-4 - {:class (when-not logged-in? "opacity-50 pointer-events-none cursor-not-allowed")} + {:class (when-not user-handler/alpha-user? "opacity-50 pointer-events-none cursor-not-allowed")} (sync-switcher-row enable-sync?) (whiteboards-switcher-row enable-whiteboards?)]])])) diff --git a/src/main/frontend/ui.cljs b/src/main/frontend/ui.cljs index 6f85529661..4057cb2cd6 100644 --- a/src/main/frontend/ui.cljs +++ b/src/main/frontend/ui.cljs @@ -200,26 +200,6 @@ wrapper-children))) opts)) -(defn button - [text & {:keys [background href class intent on-click small? large? title] - :or {small? false large? false} - :as option}] - (let [klass (when-not intent ".bg-indigo-600.hover:bg-indigo-700.focus:border-indigo-700.active:bg-indigo-700.text-center") - klass (if background (string/replace klass "indigo" background) klass) - klass (if small? (str klass ".px-2.py-1") klass) - klass (if large? (str klass ".text-base") klass)] - [:button.ui__button - (merge - {:type "button" - :title title - :class (str (util/hiccup->class klass) " " class)} - (dissoc option :background :class :small? :large?) - (when href - {:on-click (fn [] - (util/open-url href) - (when (fn? on-click) (on-click)))})) - text])) - (rum/defc notification-content [state content status uid] (when (and content status) @@ -962,6 +942,27 @@ {:class (str "ls-icon-" class)} (f (merge {:size 18} (r/map-keys->camel-case opts)))]))))))) +(defn button + [text & {:keys [background href class intent on-click small? large? title icon] + :or {small? false large? false} + :as option}] + (let [klass (when-not intent ".bg-indigo-600.hover:bg-indigo-700.focus:border-indigo-700.active:bg-indigo-700.text-center") + klass (if background (string/replace klass "indigo" background) klass) + klass (if small? (str klass ".px-2.py-1") klass) + klass (if large? (str klass ".text-base") klass)] + [:button.ui__button + (merge + {:type "button" + :title title + :class (str (util/hiccup->class klass) " " class)} + (dissoc option :background :class :small? :large?) + (when href + {:on-click (fn [] + (util/open-url href) + (when (fn? on-click) (on-click)))})) + (when icon (frontend.ui/icon icon {:class "mr-1"})) + text])) + (rum/defc type-icon [{:keys [name class title extension?]}] [:.type-icon {:class class