feat(categories): categoryTaxonomyService + useCategoryTaxonomy (#116) #127

Merged
maximus merged 1 commit from issue-116-category-taxonomy-service into main 2026-04-21 00:54:58 +00:00
Owner

Fixes #116

Livraison Refonte seed IPC — source de vérité TypeScript de la taxonomie v1.

Changements

  • src/services/categoryTaxonomyService.ts : getTaxonomyV1() lit le JSON bundle v1, expose les helpers findById, findByPath, getLeaves, getParentById, plus types TaxonomyNode, TaxonomyLeaf, TaxonomyRoot, Taxonomy. Cache mémoire simple (resetTaxonomyCache pour les tests).
  • src/hooks/useCategoryTaxonomy.ts : wrapper useMemo qui expose la taxonomie + helpers aux composants.
  • src/services/categoryTaxonomyService.test.ts : 15 unit tests couvrant les helpers et le cas de cache.

Pas de changelog

Infrastructure interne, pas de comportement utilisateur modifié (sera consommé par #117 Guide et #121 Migration).

Depends on #115 (merged).

Fixes #116 Livraison Refonte seed IPC — source de vérité TypeScript de la taxonomie v1. ## Changements - `src/services/categoryTaxonomyService.ts` : `getTaxonomyV1()` lit le JSON bundle v1, expose les helpers `findById`, `findByPath`, `getLeaves`, `getParentById`, plus types `TaxonomyNode`, `TaxonomyLeaf`, `TaxonomyRoot`, `Taxonomy`. Cache mémoire simple (`resetTaxonomyCache` pour les tests). - `src/hooks/useCategoryTaxonomy.ts` : wrapper `useMemo` qui expose la taxonomie + helpers aux composants. - `src/services/categoryTaxonomyService.test.ts` : 15 unit tests couvrant les helpers et le cas de cache. ## Pas de changelog Infrastructure interne, pas de comportement utilisateur modifié (sera consommé par #117 Guide et #121 Migration). Depends on #115 (merged).
maximus added 1 commit 2026-04-21 00:53:29 +00:00
feat(categories): add categoryTaxonomyService + useCategoryTaxonomy hook (#116)
All checks were successful
PR Check / rust (push) Successful in 22m44s
PR Check / frontend (push) Successful in 2m17s
PR Check / rust (pull_request) Successful in 22m4s
PR Check / frontend (pull_request) Successful in 2m15s
742aa9ec3c
Source of truth for the v1 IPC taxonomy on the TS side. Loads the bundled
JSON, exposes typed helpers (findById, findByPath, getLeaves, getParentById)
used by the upcoming Guide (#117) and Migration (#121) pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author
Owner

Review — APPROVE

Summary : Service + hook + tests propres. Pure TS, aucune écriture BDD ni appel réseau, exactement le scope attendu pour la source de vérité taxonomie.

Checklist

  • Security : pas de secrets, JSON bundle build-time, pas d'injection.
  • Correctness : helpers testés (15/15 vert). Edge cases couverts (empty path, unknown id, root-as-parent).
  • Quality : fonctions pures, types explicites, cache mémoire bénin (resetTaxonomyCache exporté pour isolation tests).
  • i18n/changelog : N/A (infrastructure interne, pas de comportement user-visible — sera consommé par #117 et #121).

Suggestions (non-bloquantes)

  • findByPath matche sur le name canonique FR. Si un jour un appelant a besoin de résoudre depuis l'UI traduite, ajouter un findByI18nPath serait propre. Pas nécessaire maintenant.

Verdict : prêt à merger.

## Review — APPROVE ✅ **Summary** : Service + hook + tests propres. Pure TS, aucune écriture BDD ni appel réseau, exactement le scope attendu pour la source de vérité taxonomie. **Checklist** - Security : pas de secrets, JSON bundle build-time, pas d'injection. - Correctness : helpers testés (15/15 vert). Edge cases couverts (empty path, unknown id, root-as-parent). - Quality : fonctions pures, types explicites, cache mémoire bénin (`resetTaxonomyCache` exporté pour isolation tests). - i18n/changelog : N/A (infrastructure interne, pas de comportement user-visible — sera consommé par #117 et #121). **Suggestions (non-bloquantes)** - `findByPath` matche sur le `name` canonique FR. Si un jour un appelant a besoin de résoudre depuis l'UI traduite, ajouter un `findByI18nPath` serait propre. Pas nécessaire maintenant. Verdict : prêt à merger.
maximus merged commit b8fa089c5f into main 2026-04-21 00:54:58 +00:00
maximus deleted branch issue-116-category-taxonomy-service 2026-04-21 00:54:59 +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: maximus/Simpl-Resultat#127
No description provided.