Repository navigation
Conversation
keryanS
commented
Sep 24, 2026
- corrige l'issue [Analytics] Bug bloquant analytics #1534
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
Les changements sont ciblés, cohérents avec les garde-fous existants (if (api.<component>)) et traitent directement la cause du crash (évaluation à l’import de sélecteurs dépendant de composants optionnels).
Review effort: Lite
Findings: None
What changed in this PR
Ce correctif vise à empêcher le chargement de l’intégration Analytics de planter lorsque certains composants DSFR ne sont pas importés (cas reproduit avec l’accordéon dans l’issue #1534). L’approche consiste à éviter toute évaluation “à l’import” de sélecteurs dépendant de namespaces de composants optionnels (ex: api.accordion.*), en les rendant paresseux via des getters.
Changes:
- Remplacement de constantes de sélecteurs évaluées au chargement du module par des getters (
get ...()) pour retarder l’accès àapi.<component>.*. - Utilisation de
joinSelector(...)pour appliquer correctement:not(...)même lorsque le sélecteur source contient plusieurs sélecteurs séparés par des virgules. - Harmonisation du pattern sur plusieurs composants (accordion, header, modal, navigation, sidemenu, tab, tooltip) exposant des sélecteurs basés sur
api.<component>.<Selector>.*.
| File | Description |
|---|---|
| src/dsfr/analytics/script/integration/component/tooltip/tooltip-selector.js | Rend INPUT paresseux et compose le :not(...) via joinSelector pour éviter l’évaluation à l’import. |
| src/dsfr/analytics/script/integration/component/tab/tab-selector.js | Rend PANEL paresseux et applique :not(...) via joinSelector. |
| src/dsfr/analytics/script/integration/component/sidemenu/sidemenu-selector.js | Rend COLLAPSE paresseux pour ne pas toucher api.sidemenu.* tant que le composant n’est pas présent. |
| src/dsfr/analytics/script/integration/component/navigation/navigation-selector.js | Rend NAVIGATION et COLLAPSE paresseux et applique :not(...) via joinSelector. |
| src/dsfr/analytics/script/integration/component/modal/modal-selector.js | Rend MODAL paresseux et compose le sélecteur avec joinSelector. |
| src/dsfr/analytics/script/integration/component/header/header-selector.js | Rend HEADER et MODALS paresseux et applique :not(...) via joinSelector. |
| src/dsfr/analytics/script/integration/component/accordion/accordion-selector.js | Rend COLLAPSE paresseux, évitant le crash lors de l’import quand api.accordion est absent. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.