app: Corrige focus sortant de la liste
This commit is contained in:
parent
c2fb067c77
commit
2b145543f3
|
@ -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
|
||||
|
|
|
@ -28,7 +28,10 @@ export const useAsync = (initial, func, ...args) =>
|
|||
/**
|
||||
* Crée un état composé d’une liste et d’un élément ayant le focus dans cette
|
||||
* liste. À la modification de la liste ou de l’indice 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 n’est pas vide, focus ∈ [0, taille de la liste].
|
||||
* — sinon, focus = 0.
|
||||
*
|
||||
* @return Objet contenant la liste, l’indice 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))
|
||||
);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue