|  | @@ -2451,7 +2451,10 @@
 | 
	
		
			
				|  |  |        (state/exit-editing-and-set-selected-blocks! [block]))))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (defn- select-up-down [direction]
 | 
	
		
			
				|  |  | -  (let [selected (first (state/get-selection-blocks))
 | 
	
		
			
				|  |  | +  (let [selected-blocks (state/get-selection-blocks)
 | 
	
		
			
				|  |  | +        selected (case direction
 | 
	
		
			
				|  |  | +                   :up (first selected-blocks)
 | 
	
		
			
				|  |  | +                   :down (last selected-blocks))
 | 
	
		
			
				|  |  |          f (case direction
 | 
	
		
			
				|  |  |              :up util/get-prev-block-non-collapsed
 | 
	
		
			
				|  |  |              :down util/get-next-block-non-collapsed)
 | 
	
	
		
			
				|  | @@ -3079,7 +3082,7 @@
 | 
	
		
			
				|  |  |          (state/editing?)
 | 
	
		
			
				|  |  |          (keydown-up-down-handler direction)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        (and (state/selection?) (== 1 (count (state/get-selection-blocks))))
 | 
	
		
			
				|  |  | +        (state/selection?)
 | 
	
		
			
				|  |  |          (select-up-down direction)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          :else
 | 
	
	
		
			
				|  | @@ -3108,34 +3111,35 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (defn open-selected-block!
 | 
	
		
			
				|  |  |    [direction e]
 | 
	
		
			
				|  |  | -  (when-let [block-id (some-> (state/get-selection-blocks)
 | 
	
		
			
				|  |  | -                              first
 | 
	
		
			
				|  |  | -                              (dom/attr "blockid")
 | 
	
		
			
				|  |  | -                              uuid)]
 | 
	
		
			
				|  |  | -    (util/stop e)
 | 
	
		
			
				|  |  | -    (let [block    {:block/uuid block-id}
 | 
	
		
			
				|  |  | -          block-id (-> (state/get-selection-blocks)
 | 
	
		
			
				|  |  | -                       first
 | 
	
		
			
				|  |  | -                       (gobj/get "id")
 | 
	
		
			
				|  |  | -                       (string/replace "ls-block" "edit-block"))
 | 
	
		
			
				|  |  | -          left?    (= direction :left)]
 | 
	
		
			
				|  |  | -      (edit-block! block
 | 
	
		
			
				|  |  | -                   (if left? 0 :max)
 | 
	
		
			
				|  |  | -                   block-id))))
 | 
	
		
			
				|  |  | +  (let [selected-blocks (state/get-selection-blocks)
 | 
	
		
			
				|  |  | +        f (case direction
 | 
	
		
			
				|  |  | +            :left first
 | 
	
		
			
				|  |  | +            :right last)]
 | 
	
		
			
				|  |  | +    (when-let [block-id (some-> selected-blocks
 | 
	
		
			
				|  |  | +                                f
 | 
	
		
			
				|  |  | +                                (dom/attr "blockid")
 | 
	
		
			
				|  |  | +                                uuid)]
 | 
	
		
			
				|  |  | +      (util/stop e)
 | 
	
		
			
				|  |  | +      (let [block    {:block/uuid block-id}
 | 
	
		
			
				|  |  | +            block-id (-> selected-blocks
 | 
	
		
			
				|  |  | +                         f
 | 
	
		
			
				|  |  | +                         (gobj/get "id")
 | 
	
		
			
				|  |  | +                         (string/replace "ls-block" "edit-block"))
 | 
	
		
			
				|  |  | +            left?    (= direction :left)]
 | 
	
		
			
				|  |  | +        (edit-block! block
 | 
	
		
			
				|  |  | +                    (if left? 0 :max)
 | 
	
		
			
				|  |  | +                    block-id)))))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  (defn shortcut-left-right [direction]
 | 
	
		
			
				|  |  |    (fn [e]
 | 
	
		
			
				|  |  |      (when-not (auto-complete?)
 | 
	
		
			
				|  |  | +      (util/stop e)
 | 
	
		
			
				|  |  |        (cond
 | 
	
		
			
				|  |  |          (state/editing?)
 | 
	
		
			
				|  |  | -        (do
 | 
	
		
			
				|  |  | -          (util/stop e)
 | 
	
		
			
				|  |  | -          (keydown-arrow-handler direction))
 | 
	
		
			
				|  |  | +        (keydown-arrow-handler direction)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        (and (state/selection?) (== 1 (count (state/get-selection-blocks))))
 | 
	
		
			
				|  |  | -        (do
 | 
	
		
			
				|  |  | -          (util/stop e)
 | 
	
		
			
				|  |  | -          (open-selected-block! direction e))
 | 
	
		
			
				|  |  | +        (state/selection?)
 | 
	
		
			
				|  |  | +        (open-selected-block! direction e)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          :else
 | 
	
		
			
				|  |  |          nil))))
 |