                 :last (nth child-ids (dec child-count))))))
   ([component dir] (get-in-cycle component dir nil)))
 
-
 (fg/defevolverfn :focus-state
   (let [reason (fg/get-reason)
         this-focused-child (:focused-child old-focus-state)

        {:mode :requests-focus
         :focused-child this-focused-child}
        (and (:closed-focus-root component) (#{:none :throws-focus :requests-focus} this-mode))
        {:mode :has-focus
         :focused-child nil}
        :else old-focus-state)

      (fgc/parent-reason? reason)
      (case parent-mode
        :has-focus clean-state
        :none clean-state
        :parent-of-focused (if (= parent-focused-child (:id component))
                             ;; If my parent is :parent-of-focused and I am :parent-of-focused,

                                                   (if (not (:focusable component))
                                                     (get-in-cycle component :first)))]
                                 (focus-child child-id)
                                 having-focus-state)
                               old-focus-state)

                             ;; Another component next to me has focus, therefore my state is clean
