Skip to content

feat(timeline):#IMPULS-6021-customizationPreview - #1124

Merged
jcbe-ode merged 10 commits into
develop-b2schoolfrom
feat-IMPULS-6021-customizePreview
Sep 8, 2026
Merged

jcbe-ode merged 10 commits into
develop-b2schoolfrom
feat-IMPULS-6021-customizePreview

Conversation

@damienromito

@damienromito damienromito commented Aug 28, 2026

Copy link
Copy Markdown
Member

Description

Implémente le composant CustomizePreview (partie droite de la page de personnalisation /timeline/customize) : aperçu miniature de la page d'accueil, piloté par le formulaire de personnalisation.

  • Structure statique de l'aperçu : silhouette de la page d'accueil (barre de nav, cartes, blocs décoratifs), avec les 2 seuls éléments textuels réels (« Bonjour » / « Dernières actualités »), le reste étant aria-hidden.
  • selecterFontName : bascule la classe ff-dyslexic (fournie par @edifice.io/bootstrap) sur l'aperçu quand la police dyslexique est sélectionnée dans le formulaire — sans attendre l'enregistrement.
  • selectedLanguage : traduit les 2 textes de l'aperçu selon la langue sélectionnée dans le formulaire (pas encore enregistrée), via un petit dictionnaire codé en dur (7 langues : fr/en/es/de/pt/it/co) avec repli sur le français. Codé en dur faute de mécanisme de fetch de traduction par langue côté i18n (src/i18n.ts route toutes les langues vers la même URL, résolue côté back par la session) — le vrai branchement aux traductions officielles est laissé à IMPULS-6022.
  • Aperçu masqué sous le breakpoint md (comportement existant, non modifié).

Fixes

IMPULS-6021

Type of change

Please check options that are relevant.

  • Chore (PATCH)
  • Doc (PATCH)
  • Bug fix (PATCH)
  • New feature (MINOR)

Which packages changed?

Please check the name of the package you changed

  • admin
  • app-registry
  • archive
  • auth
  • cas
  • common
  • communication
  • conversation
  • directory
  • feeder
  • infra
  • portal
  • session
  • test
  • tests
  • timeline
  • workspace

Tests

  1. pnpm --filter timeline test (Vitest) : CustomizationPreview.test.tsx couvre le rendu par défaut (fr), une langue traduite (en), le repli sur langue inconnue, l'absence d'élément focusable, et la classe ff-dyslexic selon selecterFontName.
  2. Vérification manuelle via pnpm dev:mock sur /customize : changer la police dans le formulaire bascule en direct la police de l'aperçu ; changer la langue bascule en direct les textes de l'aperçu.

Reminder

  • Security flaws : aucun identifié — composant de présentation pur, pas de nouvel endpoint, pas d'entrée utilisateur libre

  • Performance impacts (think bulk !) : négligeable — table de correspondance statique, aucun appel réseau supplémentaire

  • Unit tests were replayed : oui

  • Unit tests were added and/or changed : oui

  • I have updated the reminder for the version including my modifications : à vérifier par l'auteur

  • All done ! 😃

@damienromito
damienromito force-pushed the feat-IMPULS-6021-customizePreview branch 2 times, most recently from 5137065 to fbf30d0 Compare August 28, 2026 16:27
@damienromito
damienromito force-pushed the feat-IMPULS-6253-mock-timeline branch 2 times, most recently from 7ceeafc to 4fcbfa3 Compare September 3, 2026 12:01
@damienromito
damienromito force-pushed the feat-IMPULS-6021-customizePreview branch from fbf30d0 to 65a3800 Compare September 3, 2026 12:27
Base automatically changed from feat-IMPULS-6253-mock-timeline to feat-IMPULS-6022 September 3, 2026 12:36
@damienromito
damienromito force-pushed the feat-IMPULS-6021-customizePreview branch from 65a3800 to cbe0ed1 Compare September 3, 2026 12:41
@damienromito damienromito changed the title feat(timeline):#IMPULS-6021-customizePreview feat(timeline):#IMPULS-6021-customizationPreview Sep 3, 2026
@damienromito damienromito self-assigned this Sep 3, 2026
@damienromito
damienromito requested review from jcbe-ode and a balanced review from Copilot and removed request for Copilot September 3, 2026 16:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟡 Changes recommended

Moderate font-token, accessibility, and Corsican flag issues remain unresolved.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Pull request overview

Adds a responsive customization preview to Timeline’s frontend.

Changes:

  • Previews selected language and dyslexic font.
  • Adds localized preview content, styling, fixtures, and tests.
  • Integrates the preview into the customization page.
File summaries
File Review
timeline/frontend/src/routes/pages/customize/customize.tsx Integrates the responsive preview.
timeline/frontend/src/routes/pages/customize/customize.css Removes obsolete sidebar styling.
timeline/frontend/src/models/customization.ts Defines preview text and font metadata.
timeline/frontend/src/mocks/platform/data/customize.ts Expands fixtures; moderate: Corsican currently resolves to the Colombian flag and needs an explicit mapping or asset.
timeline/frontend/src/components/CustomizationPreview/CustomizationPreview.tsx Implements the preview; moderate: decorative content must be hidden from assistive technology. Nit: rename selecterFontName to selectedFontName.
timeline/frontend/src/components/CustomizationPreview/CustomizationPreview.test.tsx Tests preview text and font behavior.
timeline/frontend/src/components/CustomizationPreview/CustomizationPreview.css Styles the preview; moderate: replace unresolved --primitive-font-family-title with --font-family-title.
timeline/frontend/.prettierignore Excludes generated MSW output.
Review details
  • Files reviewed: 8/8 changed files
  • Comments generated: 4
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread timeline/frontend/src/components/CustomizationPreview/CustomizationPreview.css Outdated
* Fixtures for GET /languages and GET /themes (page /customize).
*/
export const mockLanguages = ['fr', 'en', 'es'];
export const mockLanguages = ['fr', 'en', 'es', 'de', 'pt', 'it', 'co'];

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

@jcbe-ode ce commentaire est pertinent,
https://flagcdn.com/w80/co.png renvoit le drapeau de la colombie (appelé ici https://github.com/edificeio/entcore/blob/feat-IMPULS-6021-customizePreview/timeline/frontend/src/components/CustomizationForm/CustomizationForm.tsx#L97 )

Pourtant je vois que "co" est bien le code langue de la corse https://fr.wikipedia.org/wiki/Liste_des_codes_ISO_639-1

Il faudra voir comment contourner ce probleme. Utilisant notre propre helper côté FF

(cf @pascalsaussier-edifice )

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Il y a déjà un adaptateur, on a fait une exception similaire pour le drapeau anglais : notre code langue c'est en, mais le drapeau c'est gb.png.
=> J'applique la même chose pour le corse.

@jcbe-ode jcbe-ode Sep 8, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

...sauf qu'il ne l'ont pas :-/

Vu que c'est un sujet à part du composant de prévisualisation, je propose de le traiter ailleurs.

Comment thread timeline/frontend/src/components/CustomizationPreview/CustomizationPreview.tsx Outdated
@damienromito
damienromito force-pushed the feat-IMPULS-6021-customizePreview branch from 2ce1657 to 48dba3c Compare September 7, 2026 07:13
@jcbe-ode
jcbe-ode force-pushed the feat-IMPULS-6021-customizePreview branch from 48dba3c to 5ac0b49 Compare September 7, 2026 13:23
Base automatically changed from feat-IMPULS-6022 to develop-b2school September 8, 2026 14:53
…dynamiques

CustomizationPreview reçoit désormais selecterFontName et selectedLanguage
depuis le formulaire ; la conversion vers la classe de police (ff-dyslexic)
et vers les textes traduits se fait dans le composant. Les traductions de
l'aperçu sont codées en dur (7 langues) faute de mécanisme de fetch par
langue côté i18n, avec repli sur le français.
@jcbe-ode
jcbe-ode force-pushed the feat-IMPULS-6021-customizePreview branch from 5ac0b49 to b5a0062 Compare September 8, 2026 14:57
jcbe-ode and others added 3 commits September 8, 2026 17:20
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

@jcbe-ode
jcbe-ode merged commit 43d0eb9 into develop-b2school Sep 8, 2026
1 check passed
@jcbe-ode
jcbe-ode deleted the feat-IMPULS-6021-customizePreview branch September 8, 2026 16:13
vbillard91 pushed a commit that referenced this pull request Sep 9, 2026
* feat(timeline):#IMPULS-6021-customizePreview

fix css

* fix merge

* add font customization

* fix css

* add language custom

* feat(timeline): #IMPULS-6021 rend la police et la langue de l'aperçu dynamiques

CustomizationPreview reçoit désormais selecterFontName et selectedLanguage
depuis le formulaire ; la conversion vers la classe de police (ff-dyslexic)
et vers les textes traduits se fait dans le composant. Les traductions de
l'aperçu sont codées en dur (7 langues) faute de mécanisme de fetch par
langue côté i18n, avec repli sur le français.

* show selected background

* update tests

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix language img size

---------

Co-authored-by: jcbe-ode <jean-christophe.benoit@opendigitaleducation.com>
Co-authored-by: jcbe-ode <67910608+jcbe-ode@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
vbillard91 pushed a commit that referenced this pull request Sep 16, 2026
* feat(timeline):#IMPULS-6021-customizePreview

fix css

* fix merge

* add font customization

* fix css

* add language custom

* feat(timeline): #IMPULS-6021 rend la police et la langue de l'aperçu dynamiques

CustomizationPreview reçoit désormais selecterFontName et selectedLanguage
depuis le formulaire ; la conversion vers la classe de police (ff-dyslexic)
et vers les textes traduits se fait dans le composant. Les traductions de
l'aperçu sont codées en dur (7 langues) faute de mécanisme de fetch par
langue côté i18n, avec repli sur le français.

* show selected background

* update tests

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* fix language img size

---------

Co-authored-by: jcbe-ode <jean-christophe.benoit@opendigitaleducation.com>
Co-authored-by: jcbe-ode <67910608+jcbe-ode@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants