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é.
|
* @return Liste des mots du nom de terme normalisé.
|
||||||
*/
|
*/
|
||||||
const normalizeName = name =>
|
const normalizeName = name =>
|
||||||
diacritics.remove(name.toLowerCase())
|
name.toLowerCase()
|
||||||
.split(splitPattern)
|
.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
|
* 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
|
* 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
|
* 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
|
* @return Objet contenant la liste, l’indice de l’élément ayant le focus ainsi
|
||||||
* que des fonctions de modification.
|
* que des fonctions de modification.
|
||||||
|
@ -51,7 +54,11 @@ export const useFocusableList = () =>
|
||||||
setList(nextList)
|
setList(nextList)
|
||||||
{
|
{
|
||||||
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(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