Browse code

Select option on mouse hover

Joseph Weston authored on 14/12/2021 06:56:46
Showing 3 changed files
... ...
@@ -115,6 +115,12 @@
115 115
   (let [{:keys [options selected]} suggestions]
116 116
     {:current (nth options selected) :suggestions null-suggestions}))
117 117
 
118
+(re-frame/reg-event-db
119
+ ::hover-suggestion
120
+ (re-frame/path :cmdline)
121
+ (fn [cmd [_ idx]]
122
+     (assoc-in cmd [:suggestions :selected] idx)))
123
+
118 124
 (re-frame/reg-event-db
119 125
  ::prompt-keypress
120 126
  (re-frame/path :cmdline)
... ...
@@ -213,6 +213,7 @@
213 213
     :background-color (colorscheme :light0-soft)}
214 214
    [:li {:list-style :none
215 215
          :padding-left :3ch
216
-         :padding-right :1ch}
216
+         :padding-right :1ch
217
+         :cursor :pointer}
217 218
      [(s/& :.selected)
218 219
       {:background-color (colorscheme :neutral-purple)}]]])
... ...
@@ -60,7 +60,9 @@
60 60
       (let [{:keys [options selected]} @suggestions]
61 61
          (for [[idx x] (enumerated options)]
62 62
            ^{:key x} [:li
63
-                      (when (= idx selected) {:class :selected})
63
+                      {:class (when (= idx selected) :selected)
64
+                       :on-mouse-enter #(re-frame/dispatch [::events/hover-suggestion idx])}
65
+
64 66
                       x]))]]))
65 67
 
66 68
 (defn title []