⬆ MAJ de react-spring vers version 8
Quelques changements d'API. Par ailleurs la version 8 exporte deux modules
l'un avec les "render-props" et l'autres avec les "hooks"
🔥 Suppression de @researchgate/react-intersection-observer
Remplacement par un custom hook
- On utilise un nouveau composant qui se base sur la dernière version de l'api SIRENE
- On sépare les données entre la simulation des cotisations et la création d'entreprise
- On gagne des lignes !
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.
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.
Pour éviter un avertissement intempestif que je n'arrivais pas à
débugguer (utilisation d'un tag JSX au lieu d'un composant ()=><jsx/>
comme prop d'une Route)
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.
On compile maintenant pour les navigateurs récents (qui supportent les modules es6.
On ajoute une config de build pour les browser legacy (ie11).
Cela permet :
- De ne plus être dépendant de polyfill.io (qui nous a claqué dans les doigts et a peté la prod)
- D'avoir un JS transpilé plus léger et plus proche du code écrit pour les navigateurs récents
- De pouvoir ajuster le build en fonction du navigateur (on ajoute pas le serviceWorker dans IE par exemple. A l'inverse, on
pourrait multiplier le nombre de bundle pour tirer profit de HTTP2)
Dans le futur, on voudra surement créer une version pour les nav moderne et une version IE,
On pourra alors se débarasser de polyfill.io et uniquement utiliser polyfill.io de babel
Intérêt : explorer la base de règle facilement, par namespace.
Ne pas merger sans faire en sorte que ça soit complètement chargé
dynamiquement, car l'éditeur doit faire plusieurs mega.
Suppression des décorateurs.
Problème :
Les décorateurs que l'on utilisait correspondait à une ancienne
version de la proposal tc39, encore en stage 1 (voir 0). La
proposition a complètement évolué, pour ne plus du tout avoir
la même forme que précédement.
Au lieu de garder la version 'legacy', on choisit de se séparer
des décorateur, étant donné que le nouveau use case n'a plus rien
à voir, et que l'ancienne version peut être gérée de manière
quasi équivalente avec des fonctions et des compose
Acceleration drastique des perfomances, la page est chargée immédiatement.
Limitations:
- La page embauche.beta.gouv.fr est prérendue en français. Le contenue saute si le navigateur est en anglais
- Les tests end to end ne sont pas encore branchés avec les pages prérendues. Voir https://github.com/zeit/serve-handler/issues/71
Le but est d'arriver au résultat en un minimum de question. Le moteur pose les questions les plus importantes (qui départagent le plus de status) en premier. Si la question peut aboutir à une absence de status concordant, elle n'est pas posée. Le moteur permet aussi de commencer par n'importe quelle question. Dans le cadre du référencement direct, cela signifie que l'on peut arriver sur la page liability par exemple via une recherche / lien et continuer à partir de ce point d'entrée.