---
# System prepended metadata

title: Évolutions de Queen

---

# É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é ?