refactor(catalog) : extract page logic into useCategoriesAdmin and useCategoryForm composables
Extrait la logique fetch/CRUD inline de la page categories (ERP-49) vers deux composables dedies, conformement au pattern Starseed : - useCategoriesAdmin : singleton state (categories + types + loading + error). Pre-chargement des types au mount de la page (au lieu du fetch par ouverture du drawer). Reset au logout via onAuthSessionCleared + appel explicite dans logout.vue. - useCategoryForm : state local par form (pas singleton). Valide cote client en miroir des RG back (RG-1.02 / RG-1.04 / RG-1.05), mappe les erreurs 409 (doublon RG-1.07) et 422 (violations API Platform) sur les bons champs. submitCreate / submitUpdate / submitDelete renvoient la ressource ou null pour decoupler la decision de fermeture du drawer. La page et le drawer deviennent purement presentationnels. Aucune regression UX : meme validations, memes toasts, meme pattern view -> edit du drawer (via isDirty expose par useCategoryForm).
This commit is contained in:
@@ -12,6 +12,7 @@ const { resetSidebar } = useSidebar()
|
||||
const { resetModules } = useModules()
|
||||
const { resetCurrentSite } = useCurrentSite()
|
||||
const { resetAuditLog } = useAuditLog()
|
||||
const { resetCategoriesAdmin } = useCategoriesAdmin()
|
||||
|
||||
onMounted(async () => {
|
||||
try {
|
||||
@@ -27,6 +28,7 @@ onMounted(async () => {
|
||||
resetModules()
|
||||
resetCurrentSite()
|
||||
resetAuditLog()
|
||||
resetCategoriesAdmin()
|
||||
await navigateTo('/login')
|
||||
}
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user