* Utilisation de la version stable de TypeScript 3.7
* Début de migration du State Redux. Plutôt que de redéfinir les types
en doublon par rapport aux actions et reducers, on utilise les valeurs
retournées par ces fonctions comme source pour les types globaux.
* Modification de tsconfig pour meilleur typage dans VS Code
* Meilleur typage de l'environnement : suppression de @types/node qui
était trop large (contient tout l'environnement serveur), et
remplacement par @types/webpack-env. Par ailleurs typage des variables
d'environnement utilisées.
* Début de migration de l'économie collaborative
* Migration de nombreux composants UI
* Mise à jour de dépendances pour récupérer un meilleur typage
* Ajout d'un hook pour configurer les simulateurs
* Suppression du higher-order component "withSitePaths", on utilise
systématiquement le hook useContext.
L'essentiel de l'application est maintenant migré, reste le moteur !
Comme recommandé dans la documentation des hooks React, ajout des deux
linters suivants : react-hooks/rules-of-hooks et react-hooks/exhaustive-deps
Mise à jour des composants, en particulier les useEffect pour y spécifier
toutes les dépendances.
Le but de la refacto est de généraliser l'utilisation des hook
Nombre de composants convertis: 52
Nombre de composants restants: 12
Il est possible de compter les composants class restants en utilisant
grep "render()"
L'occasion aussi de remplacer la dernière occurence de UNSAFE_componentWillMount
Ajout d'un nouveau test pour le formatage des montants ;
Ré-implémentation de l'activation de `onChange` (seulement quand le
montant a changé — pas son formatage – et avec la valeur non formatée) ;
Désactivation de l'évenement `onBlur` de redux-form, qui recalculait
inutilement la saisie et était à l'origine d'un bug.
Implémentation du formatage des prix, en particulier le séparateur des
milliers dans les formulaires de saisie de prix `10 000 €` vs `10000 €`.
Note d'implémentation: Le mécanisme supprimé qui modifiait
l'`event.target.value` ne fonctionnait pas, et a été remplacé par une
`ref` react.
Si je comprends bien, ce code servait à obtenir [ €456] plutôt que [€
456]. Je pense que l'avantage n'est pas flagrant, et surtout, ça
provoque un gros 🐛 sur iOS : impossible de refermer le clavier quand
on est sur l'input. On ne peut même plus changer d'onglet du navigateur
!