Преглед изворни кода

enhance: meta-click on a parent class to navigate to it

Gabriel Horner пре 2 година
родитељ
комит
4c90983fd1

+ 1 - 2
src/main/frontend/components/datetime.cljs

@@ -63,8 +63,7 @@
           {:label "m"}
           {:label "y"}])
         (fn [_e value]
-          (swap! *timestamp assoc-in [:repeater :duration] value))
-        nil)
+          (swap! *timestamp assoc-in [:repeater :duration] value)))
 
        [:a.ml-2.self-center {:on-click (fn []
                                          (reset! *show-repeater? false)

+ 10 - 2
src/main/frontend/components/page.cljs

@@ -429,7 +429,15 @@
                       options)]
     (ui/select options
                (fn [_e value]
-                 (on-select value)))))
+                 (on-select value))
+               {:on-mouse-down
+                (fn [e]
+                  (when (util/meta-key? e)
+                    (if-let [page-name (:block/name (db/entity [:block/uuid (some-> (util/evalue e) uuid)]))]
+                      (do
+                        (route-handler/redirect-to-page! page-name)
+                        (.preventDefault e))
+                      (js/console.error "No selected option found to navigate to"))))})))
 
 (rum/defcs configure < rum/reactive
   [state page {:keys [journal?] :as opts}]
@@ -703,7 +711,7 @@
               ;;      {:label "dagre"}])
               ;;    (fn [_e value]
               ;;      (set-setting! :layout value))
-              ;;    "graph-layout")]
+              ;;    {:class "graph-layout"})]
               [:div.flex.items-center.justify-between.mb-2
                [:span (t :settings-page/enable-journals)]
                ;; FIXME: why it's not aligned well?

+ 1 - 1
src/main/frontend/components/plugins_settings.cljs

@@ -77,7 +77,7 @@
          :radio (ui/radio-list options #(update-setting! key %) nil)
          :checkbox (ui/checkbox-list options #(update-setting! key %) nil)
          ;; select
-         (ui/select options (fn [_ value ] (update-setting! key value)) nil))
+         (ui/select options (fn [_ value ] (update-setting! key value))))
        ]]]))
 
 (rum/defc render-item-object

+ 10 - 6
src/main/frontend/ui.cljs

@@ -17,9 +17,11 @@
             [frontend.components.svg :as svg]
             [frontend.config :as config]
             [frontend.context.i18n :refer [t]]
+            [frontend.db :as db]
             [frontend.db-mixins :as db-mixins]
             [frontend.handler.notification :as notification]
             [frontend.handler.plugin :as plugin-handler]
+            [frontend.handler.route :as route-handler]
             [frontend.mixins :as mixins]
             [frontend.mobile.util :as mobile-util]
             [frontend.modules.shortcut.config :as shortcut-config]
@@ -883,13 +885,15 @@
 
 (rum/defc select
   ([options on-change]
-   (select options on-change nil))
-  ([options on-change class]
+   (select options on-change {}))
+  ([options on-change select-options]
    [:select.pl-6.block.text-base.leading-6.border-gray-300.focus:outline-none.focus:shadow-outline-blue.focus:border-blue-300.sm:text-sm.sm:leading-5
-    {:class     (or class "form-select")
-     :on-change (fn [e]
-                  (let [value (util/evalue e)]
-                    (on-change e value)))}
+    (merge
+     {:class     "form-select"
+      :on-change (fn [e]
+                   (let [value (util/evalue e)]
+                     (on-change e value)))}
+     select-options)
     (for [{:keys [label value selected disabled]
            :or {selected false disabled false}} options]
       [:option (cond->