Si l'erreur était bien capturée par React, l'affichage n'était pas
rétabli lorsqu'une nouvelle saisie était effectuée. Lorsque le moteur
n'arrive pas à exécuter une simulation il ne sert à rien d'essayer
d'afficher des explications et/ou contrôles.
Convertit Components/Controls vers les React hooks et TypeScript
Tous les éléments à traduire (via la balise <Trans> ou la fonction 't')
sont analysé statiquement. Si il manque une traduction, la PR est bloquée
Ajoute un script de traduction automatique via `yarn run i18n:ui:translate`
Met à jour CONTRIBUTING.md avec les infos sur la traduction
Ajout des paramètres strictNullChecks et strictPropertyInitialization
dans la configuration TypeScript et correction des environ 70 erreurs
de typage résultantes.
Gros changements en perspective :
- Supprime la notion de période, au bénéfice de celle d'unité
(`période : mensuelle` devient `unité: €/mois`)
- Améliore les rapports d'erreur avec des messages plus clair
- Ajoute un avertissement lorsque des types ne sont pas compatible
- Ajoute la conversion automatique d'unité dans le moteur
- Ajoute une notion d'unité par défaut de la simulation,
c'est l'unité vers laquelle les règles qui ne spécifient pas
d'unité seront converties
- Ajoute une notion d'unité par défaut des règles, qui spécifie
l'unité de la règle qui prévaut lorsque qu'il n'y a pas
d'unité par défaut de la simulation (utile pour les question ou
pour s'assurer du bon type d'une règle)
* 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 !