Commit Graph

231 Commits (82197d0344854912df9ef687cbb572b2444346ec)

Author SHA1 Message Date
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 57b5818b44
Console.log qui traîne 2019-11-06 17:08:08 +01:00
Mael c3094019e4 🔥 React-Select ATMP et du coup 🔥 react-select partout 2019-11-05 18:06:56 +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 73c79e4b81 ajoute un nouveau parcours gérer mon entreprise 2019-10-23 12:21:48 +02:00
Maxime Quandalle bcb251923c
🎨 Meilleur affichage des multiplicateurs
Affichage des multiplicateurs directement au niveau des tranches et
supprime l'affichage du label "multiplicateur" qui était difficile à
comprendre.

Ajout d'un attribut de règle "acronyme", utilisé pour afficher un nom de
règle plus court au niveau des tranches d'un barème.
2019-10-17 09:33:00 +02:00
Maxime Quandalle c088d4c5df
🐛 Ré-affiche le fil d'ariane sur la documentation
Corrige une régression de 1ccaf94
2019-10-16 12:12:10 +02:00
Maxime Quandalle 7ea385cb80
🐛 Corrige l'affichage de l'image des références
Regression de 6ea5dd087
2019-10-13 20:15:53 +02:00
Maxime Quandalle 1ccaf94a1c
⚙️ Nouvelle syntaxe de définition publicodes
* Définition à partir du nom complet en notation pointée (plutôt que
  comme deux attributs indépendants "name" et "espace")
* Structure de données de premier niveau "dictionnaire" plutôt que liste,
  s'aligne mieux avec notre contrainte d'unicité des noms
* Possibilité de définir les règles à partir d'une liste dans les tests,
  dans ce cas il ne faut plus utiliser l'attribut "espace" mais renseigner
  directement la notation pointée dans le "nom".
2019-10-13 11:46:29 +02:00
Maxime Quandalle fa5157d6ba
Ajout d'une option pour retourner seulement le taux d'un barème linéaire
Option analogue à celle déjà disponible sur "barème continu"
2019-09-27 17:04:30 +02:00
Johan Girod 28d70b44d2
🔨 remplace 'auto entrepreneur' par 'auto-entrepreneur' 2019-09-13 10:23:55 +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
Maxime Quandalle 6344d2f2e1
Amélioration des pages de documentations pour rend non applicable
- ajout des traductions
- ajout d'une notice "désactivée par" quand une règle est désactivée
  par un régime d'exception actif
2019-09-04 09:14:28 +02:00
Maxime Quandalle 1ffb97c2f6
Renomme "désactive" en "rend non applicable"
Ajout de tests, amélioration de la doc
2019-09-03 22:45:54 +02:00
Maxime Quandalle 89f370b182
Ajout d'une ruleProp "désactive" 2019-09-03 22:45:48 +02:00
Mael 7ae3eaca60 🎨 Espacement sous les noms des mécanismes 2019-07-23 18:44:26 +02:00
Mael 9e80f2b36b 🔥 Type et période de l'infobox, période près de valeur 2019-07-23 18:44:26 +02:00
Mael b72ec28108 🎨 Marge inutile
Reliquat qui rendait l'affichage moche
2019-07-23 18:44:26 +02:00
Mael fb73ed5cbf 🎨 Alingement des expressions sur mobile 2019-07-23 18:44:26 +02:00
Mael 906dcf8c80 On évite de parler de règle pour la /doc, plutôt de pages 2019-07-23 17:03:00 +02:00
Mael 86a3002452 🎨 Symbole égalité pour les valeurs de méca et alignement en bas
D'après le peu de tests effectués (2) le résultat du mécanisme est mieux
en bas
2019-07-23 17:03:00 +02:00
Mael 6b2d4b8dd3 🎨 Amélioration du style des composantes 2019-07-23 17:03:00 +02:00
Mael adf556c36f 🎨 Alignement des valeurs des expressions dans /doc 2019-07-23 17:03:00 +02:00
Mael 342605e86b Unités : pourcentage et multiplication 2019-07-23 17:03:00 +02:00
Mael 1ca341a5b5 Implémentation plus générique des unités 2019-07-23 17:03:00 +02:00
Mael d2a0904c99 🎨 Déplacement et simplification des résultats des mécanismes 2019-07-23 17:03:00 +02:00
Maxime Quandalle db90552f6a Répare les liens interne dans la documentation
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.
2019-07-16 17:21:54 +02:00
Mael 922e4cf919 Meilleure explication des dépendances parent
Et traduction
2019-07-12 10:33:02 +02:00
Mael c21b149fe2 Meilleur affichage des valeurs par défaut 2019-07-12 10:33:02 +02:00
Mael 17b5a4d128 🐛 Problème de visualisation de l'inersion 2019-07-12 10:33:02 +02:00
Mael 633b213869 🐛 Affichage d'une valeur quand elle est nulle 2019-07-12 10:33:02 +02:00
Mael 4785155f25 Correction des tests 2019-07-12 10:33:02 +02:00
Mael ed4d4a0d7a Mutualisation de <Value>
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
2019-07-12 10:33:02 +02:00
Mael 76b60afed7 1er affichage des unités : indemnité km vélo 2019-07-12 10:33:02 +02:00
Mael 6154419250 Changement de programme : tentative d'implé de l'unité dans l'eval
Car quand on parse et qu'on tombe sur une variable, on ne rentre pas
dans cette variable. Elle sera traitée par la suite dans le parseAll.
Ainsi on ne peut pas connaître son unité si elle a une formule

A = B * C
B = D / E

C unité km
D unité €
E unité km

Quand on tombe sur B dans A, B n'est pas encore parsée, et donc on ne
peut pas savoir que B est en € / km.

Il faudrait parser B, ce qui serait trop couteux. On pourrait
implémenter un cache au parsing, implémenter les unités comme des fonctions, ou encore gérer les unités lors de l'éval (ce qui est bête, car on n'a pas besoin des valeurs pour inférer les unités)
2019-07-12 10:33:02 +02:00
Mael a7c6cb25fa Première unité affichée sur la page règle 2019-07-12 10:33:02 +02:00
Mael a75b22d083 Début de l'implémentation des unités 2019-07-12 10:33:02 +02:00
Mael 761fa8eb14 Réforme de la gestion des valeurs
Première version qui fonctionne...
... sans le composant PaySlip
2019-07-12 10:33:02 +02:00
Johan Girod 5331415e6b
Améliore le bouton faire une simulation sur les pages règles
Lorsque la règle concerne contrat salarié, redirige vers le simulateur salarié
Lorsqu'elle concerne les auto-entrepreneurs ou les indépendant, vers les simulateur de revenu associés

Permet d'améliorer la rétention des utilisateurs arrivés sur les pages docs comme landing (ex : mot clé salaire net après impôts)
2019-05-23 12:18:50 +02:00
Johan Girod b69fb92944
Suppression du site embauche.beta.gouv.fr 2019-04-24 10:49:11 +02:00
Johan Girod 87837ee2a3 Ajoute un test pour le bug de cotisations 2019-04-12 10:47:56 +02:00
Johan Girod 7a8bf6c58a 👽 dernières traductions et ajustement 2019-04-10 11:33:04 +02:00
Johan Girod ae96be0635 🎨 amélioration de l'affichage des règles 2019-03-20 18:05:41 +01:00
Johan Girod 40560361f1 🎨 améliore la compréhension du mécanisme de multiplication 2019-03-20 16:59:55 +01:00
Mael 60109221e6 Amélioration du bouton "Faire une simulation" 2019-03-19 16:55:38 +01:00
Mael 331758e2a7 🎨 Mise en retrait du bouton "voir la source"
Perturbant pour beaucoup d'utilisateurs.
Néanmoins intéressant pour l'indexation, tant que tout le contenu des
règles n'est pas correctemetn affiché
2019-03-19 16:55:38 +01:00
Mael f066fb2356 ⬆️ MAJ de React Helmet
La version 5 provoquait des boucles infinies.
2019-03-19 16:55:38 +01:00
Mael e79e71fb22 Réparation des tests de barème
Et réactivation de tous les tests, malencontreusement désactivés par un
it.only...
2019-02-14 08:50:13 +01:00
Mael d35eec0dbb 🐛 Correction d'un bug de réécriture d'une fonction 2019-02-14 08:50:13 +01:00