app: Fait boucler le focus au lieu de clamp

This commit is contained in:
Mattéo Delabre 2019-12-04 18:46:29 -05:00
parent 2b145543f3
commit 5ad7ee0b55
Signed by: matteo
GPG Key ID: AE3FBD02DC583ABB
1 changed files with 15 additions and 5 deletions

View File

@ -70,11 +70,21 @@ export const useFocusableList = () =>
*/ */
setFocus(nextFocus) setFocus(nextFocus)
{ {
setFocus( const itemCount = list.length;
list.length === 0
? 0 if (itemCount === 0)
: Math.min(list.length - 1, Math.max(0, nextFocus)) {
); // 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 à lintérieur de la liste
nextFocus = nextFocus % itemCount;
setFocus(nextFocus);
} }
}; };
}; };