From 5ad7ee0b5573688c97af4fb8ea4cdb6bd18ddaa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matt=C3=A9o=20Delabre?= Date: Wed, 4 Dec 2019 18:46:29 -0500 Subject: [PATCH] app: Fait boucler le focus au lieu de clamp --- app/src/util.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/util.js b/app/src/util.js index 03b0bad..d5afd19 100644 --- a/app/src/util.js +++ b/app/src/util.js @@ -70,11 +70,21 @@ export const useFocusableList = () => */ setFocus(nextFocus) { - setFocus( - list.length === 0 - ? 0 - : Math.min(list.length - 1, Math.max(0, nextFocus)) - ); + const itemCount = list.length; + + if (itemCount === 0) + { + // Sur la liste vide, on ne peut pas changer le focus + return; + } + + // Ramène une valeur négative dans les positifs + while (nextFocus < 0) { nextFocus += itemCount; } + + // Ramène une valeur trop grande à l’intérieur de la liste + nextFocus = nextFocus % itemCount; + + setFocus(nextFocus); } }; };