Преглед на файлове

feat(shortcut): add shift+enter to open auto complete item

Peng Xiao преди 4 години
родител
ревизия
8fb375b4d8
променени са 3 файла, в които са добавени 25 реда и са изтрити 3 реда
  1. 8 2
      src/main/frontend/components/search.cljs
  2. 11 0
      src/main/frontend/handler/ui.cljs
  3. 6 1
      src/main/frontend/modules/shortcut/config.cljs

+ 8 - 2
src/main/frontend/components/search.cljs

@@ -211,8 +211,14 @@
                                  :block
                                  block))
 
-                              nil)
-                            (search-handler/clear-search!))
+                              :new-page
+                              (page-handler/create! search-q)
+
+                              :file
+                              (route/redirect! {:to :file
+                                                :path-params {:path data}})
+
+                              nil))
          :item-render (fn [{:keys [type data]}]
                         (let [search-mode (state/get-search-mode)]
                           [:div {:class "py-2"} (case type

+ 11 - 0
src/main/frontend/handler/ui.cljs

@@ -147,6 +147,17 @@
       (on-chosen (nth matched @current-idx) false)
       (and on-enter (on-enter state)))))
 
+(defn auto-complete-shift-complete
+  [state e]
+  (let [[matched {:keys [on-chosen on-shift-chosen on-enter]}] (:rum/args state)
+        current-idx (get state :frontend.ui/current-idx)]
+    (util/stop e)
+    (if (and (seq matched)
+             (> (count matched)
+                @current-idx))
+      (on-shift-chosen (nth matched @current-idx) false)
+      (and on-enter (on-enter state)))))
+
 ;; date-picker
 ;; TODO: find a better way
 (def *internal-model (rum/cursor state/state :date-picker/date))

+ 6 - 1
src/main/frontend/modules/shortcut/config.cljs

@@ -47,7 +47,11 @@
     :auto-complete/complete
     {:desc    "Auto-complete choose selected item"
      :binding "enter"
-     :fn      ui-handler/auto-complete-complete}}
+     :fn      ui-handler/auto-complete-complete}
+    :auto-complete/shift-complete
+    {:desc    "Auto-complete open selected item in sidebar"
+     :binding "shift+enter"
+     :fn      ui-handler/auto-complete-shift-complete}}
 
    :shortcut.handler/block-editing-only
    ^{:before m/enable-when-editing-mode!}
@@ -412,6 +416,7 @@
     :auto-complete/prev
     :auto-complete/next
     :auto-complete/complete
+    :auto-complete/shift-complete
     :date-picker/prev-day
     :date-picker/next-day
     :date-picker/prev-week