L'insertion de l'iframe par le script ne dépend plus d'un identifiant
présent dans le DOM. Permet également l'insertion de plusieurs iframes
sur la même page, ce qui était impossible avant.
* 🐛🎨 Fix des élements qui apparaisent à l'impression
* 🐛🎨 Fix des block vide à l'impression
* 🐛🎨 Fix des types
* 🐛💻 Ajout d'un check pour afficher le bouton d'impression
* 🐛🎨 Fix des types
* 🐛🎨 Amélioration visuel lors de l'impression
* 🐛🎨 Suppression des marges autour du simulateur à l'impression
* 🐛🎨 Supression d'une classe global css inutile
* ✨ Fix types
* ✨ Déplace les scripts de traduction dans site
* ✨ Nettoyage du fichier .env.template
* ✨ Ajout du devtool redux uniquement en mode dev
* ✨ Ajout d'une erreur si l'api github ne retourne pas un status 200
* ✨ Fix types
* ✨ Temporary fix package import error
* ⬆️ Update @redux-devtools/extension
* 🏓🤩 Ajout d'un selecteur de période sur les simulateurs indépendants
Amélioration du type Simulation
fix#1138
* 🏓🤩 Fix pour que la traduction puisse fonctionner
* 🏓🤩 Fix de la traduction
Affichage du status que deepl retourne en cas d'erreur
* ✨ Refacto du selecteur d'année
🎨 Ajout du selecteur d'année sur le simulateur auto-entrepreneur
🔥 Suppression du lien vers l'aide à la déclaration des revenus
🎨 Ajout de l'année dans le titre du simulateur
* 🐛 Ajout des var d'env dans le template
🐛 Fix d'un process.env restant
* 🐛 Fix des fakeData
* 👽 Fix traduction
* ✨ Refacto du selecteur d'année
👽 Fix traduction
On utilise une logique propre, plus la peine de passer par iframeResizer (qui intègre beaucoup de logique
de polyfill).
Par ailleurs, répare la page de test de l'intégration iframe en dev.
fix#1968, fix#1998
* ✨ Refacto de la config eslint
* ✨ Ajout de rel='noreferrer' sur les liens
* ✨ Fix de différentes erreurs de types et de tests
* ✨ Ajout des regles cypress dans eslint
* ✨ Suppression de la regle react/jsx-no-target-blank
* ✨ Fix import
À l'usage je trouve que le saut du curseur sur le champ de recherche
d'entreprise est perturbant. Je pense que ça pose aussi des problèmes
d'accessibilité (navigation au clavier, lecteur d'écran), en particulier
pour la page d'accueil.
https://developer.mozilla.org/fr/docs/Web/HTML/Global_attributes/autofocus#remarques_sur_laccessibilit%C3%A9_de_la_fonctionnalit%C3%A9
Google met bien de l'autofocus sur sa page d'accueil mais le champ
de recherche est vraiment ce que la personne va utiliser à 99%, ce qui
n'est pas le cas pour nous.
- Creation d'un composnant <BrowserOnly /> pour éviter le CLS
- Restaure l'animation de chargement et le message de navigateur obsolète
- Correction d'une chaîne de caractère dans l'UI avec des tabulations
- Répare la section nouveautés
- Suppression du rehooks/local-storage
- Suppression de swr
Désormais nous utilisons un script NodeJS natif pour générer le code
HTML pour le pré-rendu des pages. Cela est plus rapide et plus fiable
que la méthode précédente qui consistait un instrumentaliser un
navigateur (pupetter)
https://github.com/chrisvfritz/prerender-spa-plugin
Cela implique toutefois de faire attention à ne plus utiliser des
variables gloables du navigateur, comme `window`, `document` ou
`location` dans nos scripts. C'est plutôt une bonne pratique, mais il
faudrait sans doute configurer du typage pour détecter ces usages le
plus tôt possible et éviter de créer des erreurs inopinées avec le SSR.
La version utilisée de react-markdown n'était pas compatible avec
ViteJS. J'ai tenté la mise à jour vers la v7 qui est publiée sous forme
de ES Module, ce qui nécessitait d'intégrer plusieurs changements d'API.
En m'y attelant j'ai réalisé que la motivation première de
react-markdown était de ne surtout pas utiliser
`dangerouslySetInnerHTML`, ce qui est utile pour les cas d'usages où le
markdown n'est pas digne de confiance (message d'utilisateurs par
exemple). Cette contrainte oblige à alourdir sensiblement la quantité de
JavaScript à charger et à évaluer.
Anisi dans certains markdown que l'on affiche, on utilise la balise HTML
`<sup>`, qui n'est pas parsée nativement pas react-markdown. Comme on ne
peut pas faire de `dangerouslySetInnerHTML` il faut intégrer un parseur
HTML complet qui rajout 60kb, juste pour quelques occurences de `<sup>`
dans les pages nouveautés.
Dans notre cas d'usage reparser tout le html en Javascript, n'est pas
utile. markdown-to-jsx semble plus adapté et beaucoup plus léger. Par
ailleurs le paquet est 5 fois plus utilisé que react-markdown :
https://www.npmtrends.com/react-markdown-vs-markdown-to-jsx
- Création d'un plugin personnalisé pour gérer le serveur dev et le
build Rollup
- Restauration d'un template.html (ne fonctionne pas encore au build)
- Suppression de la config Babel
Nous utilisions Jest uniquement pour les tests de non regressions qui
recquièrent le “snapshot testing”. Cette fonctionnalité étant supoprtée
par Vitest, il n'est plus utile de maintenir 2 environnement de tests
séparés.
Réactive 2 suites de tests qui n'étaient plus fonctionnelles :
- les "exemples" définis directements dans le publicodes
- le StackedBarChart
Suppression de mocha, mochapack, sinon, chai
Avec vite, on n'utilise plus `process.env` côté client, mais
`import.meta.env`. Par ailleurs seules les variables d'environnement
préfixées par `VITE_` sont exposées au client, les autres sont
uniquement disponibles côté serveur.
## 1. Enlève formatUnit des engine options
Cette partie aboutit à un bug (à regarder de plus près). Elle n'est utilisée
que pour afficher les unités traduites dans les pages de doc, et vu que ces
dernières ne sont de toute façon pas traduites, on laisse de côté pour l'instant
Il faudra revoir complètement l'affichage et la gestion des unités dans publicodes
cf https://github.com/betagouv/publicodes/issues/144 et https://github.com/betagouv/publicodes/issues/34
## 2. Règle un bug avec la traduction lorsqu'une règle publicode est de la forme :
nom de la règle : <scalaire>
Cela aboutissait à la valeur qui était non prise en compte par la version anglaise.
## 3. Met à jours des traductions
On en profite pour faire un usage étendu des ancres en yaml. C'est pas
forcément très lisible, mais ça permet de répondre au problème de
la duplication des structures de données en publicodes.
Il faudrait éventuellement documenter cela sur la documentation officielle.
celle-ci ne se mettaient pas à jour au changement des fonctions d'origine,
ce qui causait un décalage d'unité ("€ / an" au lieu de "€ / mois") après un changement mensuel <> annuel.
fix#1880
* 🎨 Ajoute un champs de recherche d'entreprise dans la page d'accueil
Aucune intéractivité ajoutée pour l'instant
🔥 Déplace la recherche dans un nouveau composant
🎨 Ajoute une animation lors de la saisie de texte
🎨✨ Branche la recherche d'entreprise via l'api existante
🎨 Améliorations diverses
✨ ajoute la possibilité d'utiliser entrée lorsqu'il n'y a qu'un seul résultat
Remplace les résultats sous forme de lien par des boutons
🐛 Fix le prérendu
💚 Fix TS & répare le composant 'Appear'
Améliore le style sur mobile
Ajoute une section simulateurs sur la landing
Enlève l'animation lorsqu'on revient à la page d'accueil depuis une autre page
Branche la selection d'entreprise avec la page 'gérer'
Branche la selection d'entreprise avec la page 'gérer'
Ajoute un raccourci vers l'entreprise selectionnée depuis la page d'accueil
👽 ajoute les traductions manquantes
* Adapte la nouvelle page à la charte URSSAF
* Répare la selection des resultats
Simplifie le contenu de la landing
* Met à jour les tests cypress avec le flow de recherche
* Répare les erreurs de type
* Réduit la taille du champ de recherche sur la landing
* Met en avant la recherche entreprise
* Améliore le test cypress de la recherche
* Utilise une couleur moins forte pour le fond de la recherche
* Remet en couleur claire par la landing
* Utilise data-testid pour identifier les éléments de la recherche
* Enlève un composant non utilisé
Co-authored-by: Johan Girod <johan.girod@beta.gouv.fr>
Co-authored-by: Alexandre Valsamou-Stanislawski <alexandre.valsamoustanislawski@beta.gouv.fr>
Suite à la migration mon-entreprise vers mon-entreprise.urssaf.fr, les données de mon-entreprise.fr
remontent avec l'identifiant de site ATInternet correspondant à la configuration de dev.
On a donc quelques jours de statistiques qui se trouvent sur le mauvais id (début décembre 21)
Certes, cette manip abouti à l'affichage des données de dev sur les stats de prod, mais au vu des faibles volumes de ces dernières
et des gros volumes de la prod, cela ne devrait que très marginalement impacter nos indicateurs.
Le package.json racine sert uniquement à définir les workspaces mais les
dépendances doivent être définies dans chacun des workspace. C'est
pourquoi un `yarn install` à la racine sans ajouter d'option spécifique
ne fonctionne pas.
J'ai donc déplacé l'ensemble des dépendances de dev dans le workspace
`site`, la plupart étaient des doublons déjà présent dans le fichier.
Cette librairie n'était utilisée qu'une seule fois et styled-components
permet de s'en passer aisément.
Hélas, la libraire n'est pas supprimée du bundle car elle reste utilisée
par react-instantsearch-dom.