Browse Source

fix: jump works when 92 keys is exceeded

e.g. in almost any object in schema.org. Also fix
multi-key selection accidentally broken by last commit
Gabriel Horner 1 year ago
parent
commit
d499e3a0b5
1 changed files with 9 additions and 8 deletions
  1. 9 8
      src/main/frontend/handler/jump.cljs

+ 9 - 8
src/main/frontend/handler/jump.cljs

@@ -66,16 +66,17 @@
   (let [idx (.indexOf @*current-keys key)]
   (let [idx (.indexOf @*current-keys key)]
     (when (>= idx 0) (nth triggers idx))))
     (when (>= idx 0) (nth triggers idx))))
 
 
-(defn trigger!
+(defn- trigger!
   [key e]
   [key e]
   (let [{:keys [triggers _mode]} @*jump-data]
   (let [{:keys [triggers _mode]} @*jump-data]
     (let [trigger (get-trigger triggers (string/trim key))]
     (let [trigger (get-trigger triggers (string/trim key))]
-      (util/stop e)
-      (state/clear-selection!)
-      (exit!)
-      (if trigger
-        (.click trigger)
-        (notification/show! "Invalid jump" :error true)))))
+      (when (or trigger (>= (count (string/trim key)) 2))
+        (util/stop e)
+        (state/clear-selection!)
+        (exit!)
+        (if trigger
+          (.click trigger)
+          (notification/show! "Invalid jump" :error true))))))
 
 
 (defn jump-to
 (defn jump-to
   []
   []
@@ -112,7 +113,7 @@
                     (d/append! dom (-> (d/create-element :div)
                     (d/append! dom (-> (d/create-element :div)
                                        (d/set-attr! :class class)
                                        (d/set-attr! :class class)
                                        (d/set-text! (nth keys id))))))
                                        (d/set-text! (nth keys id))))))
-                triggers))
+                (take (count keys) triggers)))
               (.addEventListener js/window "keydown" key-down-handler)))))
               (.addEventListener js/window "keydown" key-down-handler)))))
 
 
       :else                             ; add block jump support
       :else                             ; add block jump support