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