refactor(client): extract round 2 components and shared helpers (#12) #35

Merged
Reliodas merged 1 commit from refactor/12-round2-components into develop 2026-06-24 07:46:37 +00:00
Owner

Closes #12.

Les vues MJ/candidat/spectateur dupliquaient le rendu du code, du passage de catégorie et des classements, ainsi que KEYMAP, rankClass et le tri de manche 2.

Changements

  • Nouveaux composants Codebreaker.vue, CategoryTurn.vue, Round2Scoreboard.vue, réutilisés par les trois rôles via des slots pour les parties spécifiques.
  • KEYMAP, rankClass et le tri par score de manche 2 centralisés dans composables/useRound2.ts.
  • Round2Scoreboard surligne les qualifiés à partir de la décision serveur (eliminated) en round2-finished, et prévisualise les finalistes avant la coupure — fin du top-3 local codé en dur (lien avec #7).
  • Suppression du markup, des helpers et du CSS dupliqués dans les vues.

Tests

  • Tests des trois nouveaux composants (19 cas).
  • Vitest 68 ; couverture client 50 % statements (vs ~32 %) ; typecheck + build OK.

Critères d'acceptation

  • Extraire composants code / passage de catégorie / classement
  • Mutualiser clavier, fonctions de classement et styles communs
  • Conserver uniquement l'orchestration par rôle dans les vues
  • Remplacer les styles inline récurrents
  • Ajouter des tests aux composants extraits
  • Afficher les qualifications serveur dans le classement

🤖 Generated with Claude Code

Closes #12. Les vues MJ/candidat/spectateur dupliquaient le rendu du code, du passage de catégorie et des classements, ainsi que KEYMAP, rankClass et le tri de manche 2. ## Changements - Nouveaux composants `Codebreaker.vue`, `CategoryTurn.vue`, `Round2Scoreboard.vue`, réutilisés par les trois rôles via des slots pour les parties spécifiques. - `KEYMAP`, `rankClass` et le tri par score de manche 2 centralisés dans `composables/useRound2.ts`. - `Round2Scoreboard` surligne les qualifiés à partir de la décision serveur (`eliminated`) en `round2-finished`, et prévisualise les finalistes avant la coupure — fin du top-3 local codé en dur (lien avec #7). - Suppression du markup, des helpers et du CSS dupliqués dans les vues. ## Tests - Tests des trois nouveaux composants (19 cas). - Vitest 68 ; couverture client **50 % statements** (vs ~32 %) ; typecheck + build OK. ## Critères d'acceptation - [x] Extraire composants code / passage de catégorie / classement - [x] Mutualiser clavier, fonctions de classement et styles communs - [x] Conserver uniquement l'orchestration par rôle dans les vues - [x] Remplacer les styles inline récurrents - [x] Ajouter des tests aux composants extraits - [x] Afficher les qualifications serveur dans le classement 🤖 Generated with [Claude Code](https://claude.com/claude-code)
refactor(client): extract round 2 components and shared helpers
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
6d51ff97ca
The host, player and spectator views duplicated the codebreaker, category turn
and round-2 ranking markup plus the KEYMAP, rankClass and round-2 sort (#12).

- Add Codebreaker.vue, CategoryTurn.vue and Round2Scoreboard.vue, reused by all
  three role views via slots for the role-specific parts.
- Move KEYMAP, rankClass and the round-2 sort into composables/useRound2.ts.
- Round2Scoreboard highlights qualified candidates from the server decision
  (eliminated) at round2-finished, and previews the prospective finalists before
  the cut, instead of a hardcoded local top-3.
- Drop the duplicated round-2 markup, helpers and scoped CSS from the views;
  recurring inline blocks now live in the components.

Add component tests for the three new components. Update Implémentation.md.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Reliodas merged commit 45d08202a1 into develop 2026-06-24 07:46:37 +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: jeux/le-grand-concours#35
No description provided.