feat(core) : footer sidebar — compte connecté + déconnexion inline + version

Déconnexion déplacée du menu vers le footer (compte connecté au survol +
version). useLogout() appelle clearSession() (reset des stores singletons via
onAuthSessionCleared) puis redirige vers /login, sans page /logout intermédiaire.
This commit is contained in:
2026-06-29 10:24:57 +02:00
parent d5bbe8afd9
commit d6a40e4843
10 changed files with 120 additions and 62 deletions
@@ -11,8 +11,9 @@
* la recharger a chaque ouverture du drawer.
*
* State singleton au niveau module : reset automatique au logout via
* `onAuthSessionCleared` (cf. CLAUDE.md regle frontend.md), et reset
* explicite via `resetCategoriesAdmin()` appele depuis logout.vue.
* `onAuthSessionCleared` (cf. CLAUDE.md regle frontend.md), declenche par
* `clearSession()` (logout volontaire `useLogout` ou intercepteur 401).
* `resetCategoriesAdmin()` reste expose pour un reset manuel/tests.
*/
import { ref } from 'vue'
import type { CategoryType } from '~/modules/catalog/types/category'
@@ -38,10 +39,9 @@ function resetCategoriesAdminState(): void {
error.value = null
}
// Auto-enregistrement singleton : purge le state sur 401/clearSession
// pour eviter qu'un user suivant (connecte sur le meme onglet) voie le
// referentiel de l'ancien tenant. Le logout volontaire (page logout.vue)
// appelle directement `resetCategoriesAdmin()` ci-dessous.
// Auto-enregistrement singleton : purge le state sur clearSession() (logout
// volontaire via useLogout, ou intercepteur 401) pour eviter qu'un user suivant
// (connecte sur le meme onglet) voie le referentiel de l'ancien tenant.
onAuthSessionCleared(resetCategoriesAdminState)
export function useCategoriesAdmin() {
@@ -73,9 +73,9 @@ export function useCategoriesAdmin() {
}
/**
* Reset explicite — appele depuis `logout.vue` apres `auth.logout()`
* pour garantir que la prochaine session reparte sur un state propre
* meme si `clearSession()` n'a pas ete declenche (cas logout volontaire).
* Reset explicite expose pour un reset manuel (tests, ou appel cible).
* Au logout, le reset est deja garanti par `onAuthSessionCleared`
* (declenche par `clearSession()` dans `auth.logout()`).
*/
function resetCategoriesAdmin(): void {
resetCategoriesAdminState()