Skip to content

Conversation

@hbalty
Copy link
Contributor

@hbalty hbalty commented Dec 18, 2025

No description provided.

Copy link
Collaborator

@revu-bot revu-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Summary

This PR integrates the French government's DSFR (Système de Design de l'État) header component, replacing the custom navbar with standardized components. The implementation includes:

  • ✅ New DSFR dropdown menu components for desktop and mobile
  • ✅ Role-based access control directive
  • ✅ Matomo privacy notice component
  • ⚠️ CRITICAL: Missing reactive updates in HasRoleDirective
  • ⚠️ IMPORTANT: Inconsistent logout method calls
  • ⚠️ IMPORTANT: Unused input binding in LoginModalMenuComponent

Key Issues

Severity Count Category
CRITICAL 1 Reactivity bug
IMPORTANT 2 API inconsistency, unused code

The DSFR integration is well-structured, but the role directive needs immediate attention to prevent authorization bugs.

@codecov-commenter
Copy link

codecov-commenter commented Dec 18, 2025

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

❌ Patch coverage is 58.46154% with 27 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (feat-init-frontend-dsfr@76e52c7). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...pp/modules/shared/directives/has-role.directive.ts 14.28% 17 Missing and 1 partial ⚠️
...onfidentialite/alerte-confidentialite.component.ts 76.92% 3 Missing ⚠️
...agments/login-dropdown/login-dropdown.component.ts 75.00% 2 Missing ⚠️
...nts/login-modal-menu/login-modal-menu.component.ts 66.66% 2 Missing ⚠️
...ules/general/components/navbar/navbar.component.ts 75.00% 2 Missing ⚠️
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

Impacted file tree graph

@@                    Coverage Diff                     @@
##             feat-init-frontend-dsfr    #4040   +/-   ##
==========================================================
  Coverage                           ?   65.89%           
==========================================================
  Files                              ?      934           
  Lines                              ?    16407           
  Branches                           ?     2310           
==========================================================
  Hits                               ?    10811           
  Misses                             ?     5265           
  Partials                           ?      331           
Files with missing lines Coverage Δ
...fidentialite/alerte-confidentialite.component.html 100.00% <100.00%> (ø)
...ments/login-dropdown/login-dropdown.component.html 100.00% <100.00%> (ø)
...s/login-modal-menu/login-modal-menu.component.html 100.00% <100.00%> (ø)
...es/general/components/navbar/navbar.component.html 100.00% <100.00%> (ø)
...frontend/src/app/modules/general/general.module.ts 100.00% <100.00%> (ø)
...s/frontend/src/app/modules/shared/shared.module.ts 100.00% <100.00%> (ø)
...agments/login-dropdown/login-dropdown.component.ts 75.00% <75.00%> (ø)
...nts/login-modal-menu/login-modal-menu.component.ts 66.66% <66.66%> (ø)
...ules/general/components/navbar/navbar.component.ts 75.00% <75.00%> (ø)
...onfidentialite/alerte-confidentialite.component.ts 76.92% <76.92%> (ø)
... and 1 more

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 76e52c7...d361ac6. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from a14f009 to 51c43a7 Compare December 18, 2025 10:11
@hbalty hbalty temporarily deployed to build-review-auto December 18, 2025 10:11 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto December 18, 2025 10:11 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto December 18, 2025 10:11 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto December 18, 2025 10:11 — with GitHub Actions Inactive
@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from 51c43a7 to f16bd28 Compare December 19, 2025 09:57
<!-- <script async src="https://tally.so/widgets/embed.js"></script> -->
<script>
// Options disponibles à l'initialisation du DSFR
window.dsfr = {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hbalty quel est le but de cette variable ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ça sert à définir le mode d'opération du module js dsfr. J'ai mis un commentaire dans le navbar avec l'url : https://www.systeme-de-design.gouv.fr/version-courante/fr/composants/en-tete/code-de-l-en-tete#variante-avec-raccourcis-dupliques-pour-angular-react-et-vue

Le menu en mobile ne fonctionne pas sans cette bidule parce que la dom est modifiée par dsfr ce qui fais des erreurs undefined pour angular.

hbalty and others added 3 commits January 24, 2026 02:44
Update packages/frontend/jest.config.js

Co-authored-by: Revu <dnum.fabrique@sg.social.gouv.fr>

fix(front): adding yar.lock changes

fix(frontend): fix jest tranformPattern
@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from 2b6d2d0 to 1162fef Compare January 24, 2026 01:45
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:45 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:45 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:45 — with GitHub Actions Inactive
@socket-security
Copy link

socket-security bot commented Jan 24, 2026

@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from 1162fef to ab5abe5 Compare January 24, 2026 01:57
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:57 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:57 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 01:57 — with GitHub Actions Inactive
@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from ab5abe5 to 67e28a1 Compare January 24, 2026 02:00
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 02:00 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 02:00 — with GitHub Actions Inactive
@hbalty hbalty force-pushed the feat-dsfr-integrating-header-front branch from 67e28a1 to d361ac6 Compare January 24, 2026 02:03
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 02:03 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 02:03 — with GitHub Actions Inactive
@hbalty hbalty temporarily deployed to build-review-auto January 24, 2026 02:03 — with GitHub Actions Inactive
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@hbalty hbalty requested a review from pYassine January 24, 2026 02:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants