refactor(categories) : unifier la machine a etats des 2 arbres de categories sur useCollapsibleGroups #290
Labels
No labels
autopilot:pending-human
source:analyste
source:defenseur
source:human
source:medic
status:approved
status:blocked
status:in-progress
status:needs-clarification
status:needs-fix
status:ready
status:review
status:triage
type:bug
type:feature
type:infra
type:refactor
type:schema
type:security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: maximus/Simpl-Resultat#290
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Refs:
spec-decisions-collapse-multi-niveaux.md+spec-plan-collapse-multi-niveaux.md(plan v2)Depends on
defaultExpanded+storageKeynullable)Independante de #289.
Contexte
Le repo a trois implementations de repli :
useCollapsibleGroups(rapports — 1 niveau avant #288, persiste, replie-par-defaut),CategoryTree(page Categories CRUD — N niveaux, NON persiste, deplie-par-defaut, + drag-and-drop) etCategoryTaxonomyTree(guide taxonomie — N niveaux, NON persiste, replie-par-defaut, a deja les boutons bulk).Les rendus sont inconciliables (liste plate indentee vs recursion sur
children[]) — on ne les fusionne pas. Mais la machine a etats est identique (Set d'ids, toggle, expandAll, collapseAll, allExpanded, polarite, persistance). Apres #288,useCollapsibleGroupsest un sur-ensemble strict de ce que les deux arbres bricolent.Travail a faire
src/components/categories/CategoryTree.tsx— adopteruseCollapsibleGroupspour l'etat seul (storageKey: null,defaultExpanded: true), en gardant le rendu recursif et le drag-and-drop. SupprimercollectExpandable(l.195-204) et leSetlocal.src/components/categories/CategoryTaxonomyTree.tsx+src/pages/CategoriesStandardGuidePage.tsx— idem (storageKey: null,defaultExpanded: false).CategoriesStandardGuidePage:79calculeallExpanded = expanded.size > 0→ deplier UN seul noeud bascule le bouton en « Tout replier ». LeallExpandeddu hook est correct.expandAll/collapseAll/allExpanded/groupCount(qui attendent un tableau de lignes).Fichiers concernes
src/components/categories/CategoryTree.tsxsrc/components/categories/CategoryTaxonomyTree.tsxsrc/pages/CategoriesStandardGuidePage.tsxCHANGELOG.md,CHANGELOG.fr.mdTests
Pas de rendu React testable → couvrir la polarite via le helper pur
isCollapsedFor(extrait en #288). Les deux arbres restent des afficheurs.Review caveats
allExpanded = expanded.size > 0: bug avere du guide, corrige ici.Decisions prises en planification
Criteres d'acceptation
CategoryTreeetCategoryTaxonomyTreene portent plus leur propreSetd'etatSpec source
spec-plan-collapse-multi-niveaux.md (v2)