Open m-maillot opened 1 month ago
Les pros et les cons: | React Dsfr | Css Dsfr |
---|---|---|
Plus haut niveau | Plus bas niveau | |
Composants | Html très long | |
Responsive | Pas de burger menu | |
Moins de possibilités de customization | Plus de possibilités |
Les erreurs à corriger restantes:
Reste à tester: mettre le footer dsfr et faire une page entière avec composant plus complexe en dsfr
Possible, mais très énergivore, car le CSS qu'on a en local clash avec celui du DSFR
Totalement, deux pocs ont été fait :
On arrive via ces deux pocs faire du dsfr avec notre theme. Chaque pages sont indépendantes
Pour moi, oui, on pourrait uniformiser un header commun sans forcément utiliser nos composants et le DSFR pour harmoniser
Les difficultés rencontrées :
-> Pour le @gouvfr
, j'ai des soucis de build au niveau de la prod que j'ai pas résolu, sinon en local c'est niquel
-> Pour le react-dsfr
, j'ai des soucis au niveau du wrapper qui fait que lorsqu'on navigue en utilisant le router next, ça garde l'ancien theme à cause du withDsfr
Pour corriger le react-dsfr, je force le reload lorsqu'on passe d'une page en dsfr à une page en non dsfr afin d'éviter de faire trop de reload inutile. Ci-dessous le code :
useEffect(() => {
const handleRouteChange = (url) => {
const currentPath = router.pathname;
const newAndCurrentPathAreDsfr =
DSFR_READY_PATHS.includes(url) &&
DSFR_READY_PATHS.includes(currentPath);
const newAndCurrentPathAreNotDsfr =
!DSFR_READY_PATHS.includes(url) &&
!DSFR_READY_PATHS.includes(currentPath);
const needToReload =
newAndCurrentPathAreDsfr || !newAndCurrentPathAreNotDsfr;
if (needToReload) {
window.location.reload();
}
};
router.events.on("routeChangeComplete", handleRouteChange);
return () => {
router.events.off("routeChangeComplete", handleRouteChange);
};
}, [router.events, router.pathname]);
Du coup, c'est pas super optimal, j'essaye de voir si on peut le faire plus finement mais j'en ai pas l'impression
A priori, le bug ne se produit pas en production, quand on retire le fix avec l'auto reload :
Définir ce qui est possible de faire techniquement :
1) est-il possible de migrer seulement certains composants de la page (par exemple le header, ou juste les tooltips, ...)
2) est-il possible de migrer seulement certaines pages du site ?
3) est-ce qu'avec le site actuel on peut changer le css pour ressembler plus au DSFR :
4) DSFR css vs react DSFR => pro & con