refactor(cards): share editor logic across pages (#65) #78

Merged
Reliodas merged 1 commit from refactor/65-share-editor-logic into develop 2026-07-05 16:34:43 +00:00
Owner

Factorise dans card-editor.js la logique d'éditeur dupliquée entre pages (#65).

Fabriques extraites

  • initEditableList — liste nom + description (species, feats, equipment) ; remplace addItem/removeItem/renderItemsList/handleItemInput.
  • initLevelGroups — éditeur de groupes de niveaux partagé par classes/subclasses (7 fonctions), paramétré par defaultLevel (1 / 3).
  • initFormatToggle — bascule portrait/paysage + hint d'impression ; remplace les 3 setFormat (creatures, classes, subclasses).
  • renderGroupsHtml — markup de cartes de groupes byte-identique, partagé classes/subclasses.

Choix techniques

  • Les fabriques reçoivent un getter (getItems/getGroups) pour rester valides après réassignation du tableau au chargement d'un préréglage.
  • currentFormat reste une variable de page mise à jour via callback onFormat.
  • Refactor sans changement fonctionnel : aucun changement de rendu, d'IDs DOM publics ni de comportement d'impression.
  • Les listes traits/actions de creatures.html conservent leur pattern local (multi-listes + routage par type) — jugé hors périmètre raisonnable.
  • Doc : nouvelles fabriques listées dans AGENTS.md et README.md.

Vérifications

  • node scripts/smoke-test.js
  • node tests/visual-validation.js (portrait + paysage, 8 pages)
  • Contrôles DOM navigateur : add/remove/round-trip modèle, bascule format (layouts + hints) — PASS, zéro erreur console.

Réf. #65

🤖 Generated with Claude Code

Factorise dans `card-editor.js` la logique d'éditeur dupliquée entre pages (#65). ## Fabriques extraites - **initEditableList** — liste nom + description (species, feats, equipment) ; remplace `addItem`/`removeItem`/`renderItemsList`/`handleItemInput`. - **initLevelGroups** — éditeur de groupes de niveaux partagé par classes/subclasses (7 fonctions), paramétré par `defaultLevel` (1 / 3). - **initFormatToggle** — bascule portrait/paysage + hint d'impression ; remplace les 3 `setFormat` (creatures, classes, subclasses). - **renderGroupsHtml** — markup de cartes de groupes byte-identique, partagé classes/subclasses. ## Choix techniques - Les fabriques reçoivent un **getter** (`getItems`/`getGroups`) pour rester valides après réassignation du tableau au chargement d'un préréglage. - `currentFormat` reste une variable de page mise à jour via callback `onFormat`. - Refactor **sans changement fonctionnel** : aucun changement de rendu, d'IDs DOM publics ni de comportement d'impression. - Les listes traits/actions de `creatures.html` conservent leur pattern local (multi-listes + routage par type) — jugé hors périmètre raisonnable. - Doc : nouvelles fabriques listées dans AGENTS.md et README.md. ## Vérifications - `node scripts/smoke-test.js` ✅ - `node tests/visual-validation.js` (portrait + paysage, 8 pages) ✅ - Contrôles DOM navigateur : add/remove/round-trip modèle, bascule format (layouts + hints) — PASS, zéro erreur console. Réf. #65 🤖 Generated with [Claude Code](https://claude.com/claude-code)
refactor(cards): share editor logic across pages (#65)
All checks were successful
ci/woodpecker/pr/woodpecker Pipeline was successful
1fc4b803e0
Extract the editor logic duplicated between pages into card-editor.js:

- initEditableList: name+description list (species, feats, equipment),
  replacing the addItem/removeItem/renderItemsList/handleItemInput quartet.
- initLevelGroups: level-groups editor shared by classes and subclasses
  (7 functions), parameterised by defaultLevel ('1' vs '3').
- initFormatToggle: portrait/landscape toggle + print hint, replacing the
  three setFormat copies (creatures, classes, subclasses).
- renderGroupsHtml: byte-identical level-group card markup shared by
  classes and subclasses.

Factories take a getter (getItems / getGroups) so handlers stay valid after
a preset load reassigns the page array; currentFormat stays a page variable
updated via an onFormat callback. No change to rendering, public DOM ids or
print behaviour. creatures traits/actions keep their local multi-list /
type-routing pattern.

Docs: list the new factories in AGENTS.md and README.md.

Verified: smoke-test, visual-validation (portrait + landscape), and browser
DOM checks (add/remove/model round-trip, format toggle) all pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reliodas merged commit 0277d17151 into develop 2026-07-05 16:34:43 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: dnd/cards#78
No description provided.