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.
En vue de la suppression de Redux-form, ce commit crée deux nouvelles
actions : UPDATE_SITUATION et UPDATE_PERIOD qui permettent de gérer le
state de la situation, en retrouvant le même résulat qu'avec l'ancienne
implémentation au niveau du `formattedSituationSelector`
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
On affiche les prochaines questions. Super intéressant pour pouvoir
sauter directement à une question précise sans se taper toutes les
questions une par une.
Remplacement de Montant par Value
Rétablissement des explications simu salarié
Possibilité de définir des objegtifs secondaires qui sont calculés mais
pas affichés par targetSelectuon
Pour par exemple séparer l'entreprise du dirigeant
Attention, le composant TargetSelection est beaucoup trop complexe, il
mérite d'être séparé en plein de plus petits composants
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.
Sans l'autofocus, il faut alors cliquer deux fois sur la ligne CA pour pouvoir l'éditer : 1) pour passer le CA d'une div à un input 2) pour commencer à éditer et donc afficher le clavier
Et plein d'autres quickfixs dans la navigation :
- Enlève la progression incomprehensible dans le header
- Ajoute la question auto-entrepreneur lors de la recherche d'une entrepriser existante
- On cache la partie embauche pour les autos
- On précise quel type de société à coté de l'estimation du dirigeant
- et des petits quickfix de style
- En memoizant Int.NumberFormat dans Montant.js pour éviter une instantiation couteuse à chaque rendu de composant
- En transformant TargetSelection en un PureComponent
Change les règles d'affichage des champs dans la vue TargetSection.
Dorénavant, il faut que le champs soit applicable et différent de zéro pour les champs
non editable
Evidememnt, ça pose problème : on n'a pas encore retourné la valeur d'un
noeud (ex. cotisation X) qu'on demande son évaluation dans le contrôle
(cotisation X > 450)