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.
Supprime aussi redux-batched-action. Le code résultant est plus concis
(alors que l'on supprime une dépendance !), et plus clair car il y a moins
d'indirections pour se conformer aux API de redux-form.
Suppression de notre composant withLanguage qui rajoutait une abstraction
inutile.
Note: de nombreux appels à withTranslation et withLanguage était inutile
car le composant augmenté n'utilisait pas les paramètres fournis (language, t, i18n).
L'utilisation des hooks nous permet de mieux gérer le code mort, car il s'agit
de simples variables dont le non-usage est détecté par l'analyse statique.
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
Il s'agit d'une fonctionnalité non standard de JavaScript qui est peu
utilisée dans la base de code. Ajoute de la complexité pour les nouveaux
développeurs (configuration spécifique de l'environnement de dév) pour
trop peu de bénéfices.
- L'état interne est plus simple
- Le parcours est plus beau et plus facile
- On peut revenir en arrière facilement
- Correction des bugs d'update, de modifications etc...
- La traduction sera plus simple
- L'état est sauvegardé dans le local storage
- Ajout de redirections quand l'utilisateur n'a pas suivi le parcours
NOTE ! Il reste à refactorer les exemptions
Les liens dans le markdown ne prenaient pas en compte le `basename`
configuré via react-router/history.
Utilisation de `react-markdown` au lieu de `marked` qui s'inter-opère
mieux avec notre UI.
plutôt que de le charger dans le bundle principale.
- Permet d'avoir une estimation du temps de chargement
- Peut-être que le problème du nombre d'entrance plus faible que le nombre de visite sera ainsi reglé