Просмотр исходного кода

enhance(ux): auto-complete ux with mouse

charlie 3 лет назад
Родитель
Сommit
a345f434e3
2 измененных файлов с 19 добавлено и 11 удалено
  1. 14 11
      src/main/frontend/ui.cljs
  2. 5 0
      src/main/frontend/ui.css

+ 14 - 11
src/main/frontend/ui.cljs

@@ -483,7 +483,7 @@
            item-render
            item-render
            class
            class
            header]}]
            header]}]
-  (let [current-idx (get state ::current-idx)]
+  (let [*current-idx (get state ::current-idx)]
     [:div#ui__ac {:class class}
     [:div#ui__ac {:class class}
      (if (seq matched)
      (if (seq matched)
        [:div#ui__ac-inner.hide-scrollbar
        [:div#ui__ac-inner.hide-scrollbar
@@ -492,17 +492,20 @@
           [:<>
           [:<>
            {:key idx}
            {:key idx}
            (let [item-cp
            (let [item-cp
-                 [:div {:key idx}
-                  (let [chosen? (= @current-idx idx)]
+                 [:div.menu-link-wrap
+                  {:key            idx
+                   ;; mouse-move event to indicate that cursor moved by user
+                   :on-mouse-move  #(reset! *current-idx idx)}
+                  (let [chosen? (= @*current-idx idx)]
                     (menu-link
                     (menu-link
-                     {:id            (str "ac-" idx)
-                      :class         (when chosen? "chosen")
-                      :on-mouse-down (fn [e]
-                                       (util/stop e)
-                                       (if (and (gobj/get e "shiftKey") on-shift-chosen)
-                                         (on-shift-chosen item)
-                                         (on-chosen item)))}
-                     (if item-render (item-render item chosen?) item) nil))]]
+                      {:id            (str "ac-" idx)
+                       :class         (when chosen? "chosen")
+                       :on-mouse-down (fn [e]
+                                        (util/stop e)
+                                        (if (and (gobj/get e "shiftKey") on-shift-chosen)
+                                          (on-shift-chosen item)
+                                          (on-chosen item)))}
+                      (if item-render (item-render item chosen?) item) nil))]]
 
 
              (if get-group-name
              (if get-group-name
                (if-let [group-name (get-group-name item)]
                (if-let [group-name (get-group-name item)]

+ 5 - 0
src/main/frontend/ui.css

@@ -32,6 +32,11 @@
           visibility: visible;
           visibility: visible;
         }
         }
       }
       }
+
+      &:not(.chosen):hover {
+        background-color: unset !important;
+        color: var(--ls-primary-text-color);
+      }
     }
     }
   }
   }
 }
 }