# Évolutions de Queen Les objectifs sont de moderniser Queen pour améliorer ça maintenabilité, ses performances et intégrer la nouvelle version de Lunatic ## Les choses à faire - [ ] Découper le code pour aller vers une clean architecture ``` public |_index.html |_favicon.ico src |_ui |_routes |_components |_pages |_shared |_assets |_coreApi |-coreProvider.tsx |-index.ts |_index.tsx |_theme.tsx |_core (exclusively .ts file) |_ports |_adapter ... index.ts |_i18n index.ts package.json yarn.lock.json tsconfig.json .prettierrc.js .eslintrc.js .gitignore Dockerfile README.md LICENSE .env .env.local ``` Pas de dépendances à React dans `core` - [ ] Réfléchir à la gestion des états - [ ] Propositions : - [ ] utiliser [React Query](https://tanstack.com/query/v4/docs/quick-start) - [ ] utiliser [Zustand](https://github.com/pmndrs/zustand) - [ ] utiliser un autre state manager - [ ] Refactoring importants pour mieux gerer l'asynchrone - [ ] Refactoring de la partie authentification -> Port/Adapter comme [ici](https://github.com/InseeFr/Stromae/blob/v2-master/src/utils/keycloak/keycloakOidcClient.js#L12) - :warning: Attention que Queen et Pearl ne se marchent dessus - [ ] Refactoring de la partie API -> pareil aller vers un client [type](https://github.com/ddecrulle/Knowledge/blob/main/src/core/api/createApiClient.js) - [ ] Améliorer la synchronisation (pas de hook de synchronisation) - [ ] Améliorer l'implémentation de la couche d'accès à la bdd du navigateur - [ ] Enlever le Shadow Dom visible [ici](https://github.com/InseeFr/Queen/blob/master/src/components/app/app.js#L30) - :warning: Faire attention aux sucharges de styles de pearl et lunatic - [ ] Montée de version des dépendances : React 18, mui 5, react router 6, Dexie ... - [ ] Refondre l'orchestrateur pour intégrer la nouvelle version de Lunatic - [ ] Améliorer le build de Queen, - [ ] le fichier `public/entry.js` dans public qui ajoute QUEEN_URL dans le local storage pour récupérer les réssources statiques en mfe n'est pas très acceptable - [ ] Tracker les rerender fautifs - [ ] Revoir le model de données des paradatas (ne plus avoir de doublons) - [ ] Mieux gerer les ref des componsants (pour pouvoir naviguer au clavier avec les tabulations) - [ ] Améliorer l'accessibilité ?