app: Corrige focus sortant de la liste

This commit is contained in:
Mattéo Delabre 2019-12-04 18:16:27 -05:00
parent c2fb067c77
commit 2b145543f3
Signed by: matteo
GPG Key ID: AE3FBD02DC583ABB
2 changed files with 17 additions and 5 deletions

View File

@ -42,9 +42,10 @@ const stemWord = word =>
* @return Liste des mots du nom de terme normalisé.
*/
const normalizeName = name =>
diacritics.remove(name.toLowerCase())
name.toLowerCase()
.split(splitPattern)
.map(stemWord);
.map(stemWord)
.map(word => diacritics.remove(word));
/**
* Filtre une liste de termes pour ne garder que ceux qui sont similaires à une

View File

@ -28,7 +28,10 @@ export const useAsync = (initial, func, ...args) =>
/**
* Crée un état composé dune liste et dun élément ayant le focus dans cette
* liste. À la modification de la liste ou de lindice de lélément ayant le
* focus, la contrainte focus [0, taille de la liste] est imposée.
* focus, la contrainte suivante est imposée:
*
* si la liste nest pas vide, focus [0, taille de la liste].
* sinon, focus = 0.
*
* @return Objet contenant la liste, lindice de lélément ayant le focus ainsi
* que des fonctions de modification.
@ -51,7 +54,11 @@ export const useFocusableList = () =>
setList(nextList)
{
setList(nextList);
setFocus(Math.min(nextList.length, focus));
setFocus(
nextList.length === 0
? 0
: Math.min(nextList.length - 1, focus)
);
},
@ -63,7 +70,11 @@ export const useFocusableList = () =>
*/
setFocus(nextFocus)
{
setFocus(Math.min(nextList.length, Math.max(0, focus)));
setFocus(
list.length === 0
? 0
: Math.min(list.length - 1, Math.max(0, nextFocus))
);
}
};
};