feat: refonte UX du dashboard (coquille, tri/filtre/pagination, ⌘K, toasts)

Refonte front (packages/web) : coquille applicative partagée (sidebar desktop +
barre d'onglets mobile + PageHeader, langue/push/logout centralisés) pilotée par
route.meta.layout ; design system (BaseButton/BaseBadge/SegmentedControl/EmptyState/
SkeletonRow, anneau de focus, icônes @lucide/vue) ; tri/filtre/recherche/pagination
côté client via useListControls (+ synchro URL) sur sessions/worktrees/groupes ;
section « À traiter », palette de commandes ⌘K, toasts. Aucune modif serveur/protocole/DB.
This commit is contained in:
2026-06-18 11:47:36 +02:00
parent c1390bfe06
commit d6c110fc3b
41 changed files with 2416 additions and 448 deletions

View File

@@ -0,0 +1,19 @@
import { useRouter } from 'vue-router';
import { useAuthStore } from '../stores/auth';
/**
* Déconnexion centralisée. `auth.logout()` ferme la WebSocket ; la redirection vers /login
* démonte l'AppShell, qui stoppe alors les abonnements temps réel (source unique). Corrige
* l'incohérence où certaines vues ne stoppaient pas tous les flux au logout.
*/
export function useSession() {
const auth = useAuthStore();
const router = useRouter();
async function logout(): Promise<void> {
await auth.logout();
await router.replace({ name: 'login' });
}
return { logout };
}