Commit Graph

340 Commits (4f5a561ce0e41ccb661012485945abcf6cc82a4f)

Author SHA1 Message Date
Johan Girod c2358605ae prends en compte les informations de l'api entreprise dans les simulations 2020-01-07 15:53:33 +01:00
Johan Girod 22bcda8e2a corrige le dispositif ZFU pour les indeps 2020-01-07 15:53:33 +01:00
Johan Girod 91d0989a87 🎨 Ajoute un input de type date 2020-01-07 15:53:33 +01:00
Johan Girod 4749727938 🔨 ⚙️ ajoute un mécanisme durée pour la proratisation de l'ACRE :wip: 2020-01-07 15:53:33 +01:00
Maxime Quandalle 011db6b9f5
🔨 MAJ des taux AT/MP 2020 2020-01-02 10:40:12 +01:00
Maxime Quandalle e5b42e2321
🔥 Supprime le HOC withColours
Renomme colour en color, pour-être cohérent avec le CSS
2019-12-18 23:06:46 +01:00
Maxime Quandalle ca5b7cc2df
Ajout des types null et undefined
Ajout des paramètres strictNullChecks et strictPropertyInitialization
dans la configuration TypeScript et correction des environ 70 erreurs
de typage résultantes.
2019-12-18 18:52:32 +01:00
Maxime Quandalle 1b963b8bbe Ajout de l'option "allowJs" dans tsconfig.js
Cela permet l'inférence de type à partir des fichiers js qui ne sont pas
encore convertis en TypeScript.
Par ailleurs suppression des dernières traces de Flow.
Ajout d'options plus strictes pour dans la config tsconfig.js
2019-12-17 11:34:12 +01:00
Johan Girod 00b122fa97 ⚙️ ajoute la conversion d'unité
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)
2019-12-16 11:34:04 +01:00
Johan Girod 2929a0f64e 👽 traductions manquantes 2019-12-03 11:25:16 +01:00
Johan Girod 543c687b23 👽 traduction manquante 2019-12-03 10:49:54 +01:00
Johan Girod 08c4ecdea4 👽 ajoute la traduction sur pas mal de choses 2019-11-21 17:08:05 +01:00
Johan Girod 53f67bb329 🔨 debug les règles pour les sportifs 2019-11-11 18:46:41 +01:00
Maxime Quandalle 7e2a4085a7 Poursuite de la migration TypeScript
* 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 !
2019-11-11 11:33:38 +01:00
Mael 0954c8c3f7 Déplacement de getInputComponent 2019-11-05 18:45:18 +01:00
Mael fee3b3d6b6 🎨 Style de la sélection de commune 2019-11-05 18:20:32 +01:00
Mael 044aad7cfd Utilisation du fuzzy matching pour SelectTauxRisque
Pour que la recherche marche sans accents par exemple
2019-11-05 18:07:00 +01:00
Mael c3094019e4 🔥 React-Select ATMP et du coup 🔥 react-select partout 2019-11-05 18:06:56 +01:00
Mael fecdab29f8 🔥 React-select dans la sélection de la commune 2019-11-05 18:06:22 +01:00
Johan Girod 432044190f 🎨 uniformise le style de l'aide et des contrôles 2019-10-31 18:48:27 +01:00
Maxime Quandalle 6de970f0e3 🔥 Migration vers TypeScript
Outils
======

Ce commit retire le tooling de Flow, et ajoute le support de TypeScript
pour les fichiers .ts et .tsx. Il n'est pas nécessaire de tout migrer
d'un coup ce qui facilite la transition. On garde en effet le
compilateur Babel avec un preset TypeScript (ce qui permet donc de
retirer à la fois les types Flow et TypeScript) plutôt que d'utiliser le
compilateur standard pour la conversion du code. Cela permet aussi de
mieux s'intégrer avec d'autres outils, notamment les test-runners.

Ajout d'une nouvelle commande `yarn run type-check`, intégrée dans
CircleCI.

Par ailleurs ajout du support de l'opérateur ?? pour donner des valeurs
par défaut (nullish-coalescing-operator).

Typage des libraires tierces
============================

Les principales libraires que nous utilisons ont un typage TypeScript de
bon niveau, ce qui facilite l'intégration. J'ai mis à jour react-i18next
et i18next afin de corriger un problème de typage.

Typage du code
==============

Le typage est loin d'être complet dans ce commit, en particulier il
manque les types relatifs au state Redux, ainsi qu'au moteur (règle,
explication). Néanmoins le typage des contextes fonctionne, en
particulier sitePaths (avec un type récursif non trivial !) qui a déjà
permis de détecter un lien mort.

Le typage des "paths" (Components/, Règles/, etc.) fonctionne bien, y
compris avec l'auto-complétion automatique des import par Typescript.

TypeScript se révèle déjà bien agréable dans VSCode (auto-complétion,
refacto, etc.) ! Reste à migrer progressivement le reste du code !
2019-10-30 10:20:48 +01:00
Johan Girod 45d73f1159 Ajoute une page qui liste les simulateurs 2019-10-23 12:21:48 +02:00
Johan Girod c33248fd1e ajoute la description à la page de choix de statut 2019-10-23 12:21:48 +02:00
Johan Girod 0d482a0107 🎨 améliore l'animation de feedback sur le click des boutons 2019-10-23 12:21:48 +02:00
Maxime Quandalle d459d3b829
🐛 Corrige intégration des taux AT/MP
Bug introduit dans #715
2019-10-08 10:59:42 +02:00
Maxime Quandalle d46272cf26
🔨 MAJ des taux AT/MP 2019 2019-10-07 16:20:53 +02:00
Maxime Quandalle 74c5abbfa3
Désactive l'auto-complétion des input
Cette auto-complétion était gênante sur Chrome notamment
2019-09-30 12:41:05 +02:00
Maxime Quandalle 5879c9bcf5
Utilise NumberFormat pour les Input des questions
Meilleure gestion du formatage (séparateur des milliers et décimal) et
début de convergence entre Input.js et CurrencyInput.js
2019-09-25 17:29:02 +02:00
Maxime Quandalle 0fcade76e1
Formatage des nombres dans les réponses aux questions
Fixes #683
2019-09-25 17:10:02 +02:00
Maxime Quandalle 579a385b41
Regroupe les fonctions de formatage
Par ailleurs ce commit formate les taux les tableaux des barèmes linéaires
2019-09-25 17:09:59 +02:00
Maxime Quandalle dbbb67ee7f
Ajout du lint pour les hooks React
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.
2019-09-17 12:54:54 +02:00
Maxime Quandalle 3fbd94bc65
🔥 Suppression de redux-form
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.
2019-09-17 12:54:18 +02:00
Maxime Quandalle 7a5beb96f6
Gestion de l'état "situation" avec nos propres actions
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`
2019-09-17 11:44:05 +02:00
Maxime Quandalle bdd9505586
Suppression d'appels non utilisés 2019-09-11 18:17:07 +02:00
Maxime Quandalle 0663c97204 Utilisation du hook useTranslation de react-i18next
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.
2019-09-11 11:17:23 +02:00
Maxime Quandalle 6ea5dd0870 Migration de React "class" à "function"
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
2019-09-11 11:17:23 +02:00
Johan Girod 24332bd5fd
🐛 🔨 enlève la TFC pour les professions libérales 2019-09-06 15:31:18 +02:00
Johan Girod 5393de1dc2
🎨 uniformise le style des suggestions 2019-09-06 15:31:18 +02:00
Johan Girod 02410f61b9
🎨 enlève le hover entrée
Lorsque l'on aura une navigation au clavier complète et fonctionnelle, on pourra préciser tous les raccourci via une page dédiée. En attendant, inutile de polluer l'interface
2019-09-06 15:31:17 +02:00
Johan Girod 2ab3610803
🐛 corrige les décimales à rallonge dans les inputs de taux
Fix #647
2019-09-04 18:01:24 +02:00
Johan Girod dfc84279b0
🎨 aligne le bouton suivant sur chrome 2019-09-03 18:32:35 +02:00
Johan Girod d92a12c307
👽 traductions manquantes 2019-09-03 18:12:08 +02:00
Johan Girod 8a4c70d12e
🖋️🎨 remplace 'valider' par 'suivant' et réaligne le bouton avec les possibilités dans le cas d'une question oui / non 2019-09-03 11:12:45 +02:00
Johan Girod e61b37cea3
Enlève le bouton recommencer à la fin de la simulation 2019-09-03 11:12:44 +02:00
Mael e02cc908c8 🐛 Unité manquante lors de la saisie 2019-08-04 15:27:18 +02:00
Mael f0dd2ca416 Passer donne la valeur par défaut, pas null
Fixes #610
2019-08-03 15:30:49 +02:00
Mael 18cbe0623f On oublie cette histoire de faux pourcentages
Introduit au commit précédent, car je n'avais pas vu que l'option format
(couplée au normalize) de redux form existait.
2019-08-01 18:32:15 +02:00
Mael 1431c02f34 Introduction du faux pourcentage (%)
Quand une variable est destinée à être saisie par l'utilisateur, on veut
qu'il saisisse 50, pas 0.5 pour exprimer 50%.

On pourrait lui faire saisir 50 et convertir en direct vers la vraie
valeur de 0.5, mais c'est compliqué aujourd'hui dans reduxForm
(l'attribut "normalize" ne suffit pas, car la valeur 0.5 sera visible
après un bref instant de debounce).

Je pense qu'il serai quand même mieux que nous stockions les variables
qui sont des ratios comme 0.5 et que l'UI se charge d'afficher et de
faire saisir ces valeurs sous forme 50%.
2019-07-23 19:07:40 +02:00
Mael 2067689617 🐛 Gros bug de pourcentage sur le taux ATMP entreprises > 150 sal 2019-07-19 20:07:38 +02:00
Maxime Quandalle 2bc86398c0 Supprime variables inutilisées
Pour réparer les tests
2019-07-16 17:21:54 +02:00