Navigation Mobile
Vue d'ensemble
Le système de navigation mobile a été amélioré pour offrir une expérience optimale sur les appareils mobiles avec un menu utilisateur en plein écran et des sous-menus expansibles.
Composants
UserMenuMobile
Fichier : frontend/src/components/layout/UserMenuMobile.tsx
Composant de menu utilisateur optimisé pour mobile qui s'affiche en plein écran avec :
- Affichage full-screen : Menu qui occupe tout l'écran sur mobile
- Contenu scrollable : Scroll automatique si le contenu est trop long
- Sous-menus expansibles : Sections avec chevrons pour expansion/collapse
- Navigation tactile : Optimisé pour les interactions tactiles
Structure du menu :
┌─────────────────────────┐
│ Avatar | Nom | Email [X]│
├─────────────────────────┤
│ Badge de rôle │
├─────────────────────────┤
│ ▼ Mon compte │
│ → Profil │
│ → Entreprise │
├─────────────────────────┤
│ ▼ Paramètres │
│ → Application │
│ → Réservation │
│ → RGPD │
│ → Connexions │
│ → Plans │
├─────────────────────────┤
│ ▼ Système (Admin) │
│ → Administration │
│ → Plans d'abonnement │
│ → ▼ Paramètres app │
│ → Modèles │
│ → Types sessions │
│ → Plans paiement │
│ → Types tâches │
│ → Workflows │
│ → Templates email │
├─────────────────────────┤
│ ✨ Devenir Admin │
├─────────────────────────┤
│ 🚪 Déconnexion │
└─────────────────────────┘
UserDropdown
Fichier : frontend/src/components/layout/UserDropdown.tsx
Composant de menu utilisateur pour desktop qui détecte automatiquement le mobile :
- Détection automatique : Utilise
useEffectpour détecter la largeur d'écran (< 1024px) - Basculement automatique : Utilise
UserMenuMobilesur mobile,DropdownMenusur desktop - Responsive : S'adapte automatiquement à la taille de l'écran
MobileSidebar
Fichier : frontend/src/components/layout/MobileSidebar.tsx
Sidebar mobile avec :
- Animation slide-in : Slide depuis la gauche avec animation
- Backdrop : Overlay sombre pour fermer au clic
- Navigation complète : Tous les éléments de navigation avec sous-menus
- Intégration UserMenuMobile : Utilise
UserMenuButtonqui ouvreUserMenuMobile
Utilisation
Desktop
Sur desktop (> 1024px), le menu utilisateur s'affiche comme un dropdown classique dans la sidebar.
Mobile
Sur mobile (< 1024px), le menu utilisateur s'affiche en plein écran avec :
- Ouverture : Clic sur l'avatar/nom dans la sidebar mobile
- Navigation : Clic sur les sections pour les expand/collapse
- Fermeture : Clic sur le bouton X ou sur le backdrop
Détection Mobile
La détection se fait côté client avec :
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
const checkMobile = () => {
setIsMobile(window.innerWidth < 1024); // lg breakpoint
};
checkMobile();
window.addEventListener("resize", checkMobile);
return () => window.removeEventListener("resize", checkMobile);
}, []);
Améliorations Futures
- Amélioration de la responsivité des pages principales
- Optimisation des tableaux pour mobile (scroll horizontal, colonnes adaptatives)
- Amélioration des formulaires pour mobile (champs plus grands, meilleure disposition)
- Optimisation des cartes et listes pour mobile
- Tests d'intégration mobile
Fichiers Modifiés/Créés
frontend/src/components/layout/UserMenuMobile.tsx- Nouveau composant full-screenfrontend/src/components/layout/UserDropdown.tsx- Détection mobile et basculementfrontend/src/components/layout/MobileSidebar.tsx- Intégration UserMenuMobilefrontend/src/i18n/locales/fr/translation.json- Traductions pour menu utilisateur