From 5b3f7056895d3dafd9b1005a476ebd842260b289 Mon Sep 17 00:00:00 2001 From: Julien Froidefond Date: Wed, 1 Oct 2025 13:56:15 +0200 Subject: [PATCH] feat: update AuthButton and Header for improved user experience - Increased avatar and icon sizes in `AuthButton` for better visibility. - Integrated session handling in `Header` to display user profile link and sign-out button when authenticated, enhancing mobile menu functionality. - Refactored mobile menu overlay to a modal for improved usability. --- src/components/AuthButton.tsx | 4 +-- src/components/ui/Header.tsx | 48 ++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/src/components/AuthButton.tsx b/src/components/AuthButton.tsx index 5cb5dc9..3091921 100644 --- a/src/components/AuthButton.tsx +++ b/src/components/AuthButton.tsx @@ -41,10 +41,10 @@ export function AuthButton() { Avatar ) : ( - + )} diff --git a/src/components/ui/Header.tsx b/src/components/ui/Header.tsx index ca335f7..efeb840 100644 --- a/src/components/ui/Header.tsx +++ b/src/components/ui/Header.tsx @@ -9,6 +9,7 @@ import { Theme } from '@/lib/theme-config'; import { THEME_CONFIG, getThemeMetadata } from '@/lib/theme-config'; import { useKeyboardShortcutsModal } from '@/contexts/KeyboardShortcutsContext'; import { AuthButton } from '@/components/AuthButton'; +import { useSession, signOut } from 'next-auth/react'; interface HeaderProps { title?: string; @@ -23,6 +24,7 @@ export function Header({ title = "TowerControl", subtitle = "Task Management", s const [mobileMenuOpen, setMobileMenuOpen] = useState(false); const [themeDropdownOpen, setThemeDropdownOpen] = useState(false); const { openModal: openShortcutsModal } = useKeyboardShortcutsModal(); + const { data: session } = useSession(); // Liste des thèmes disponibles avec leurs labels et icônes const themes: { value: Theme; label: string; icon: string }[] = THEME_CONFIG.allThemes.map(themeValue => { @@ -76,7 +78,7 @@ export function Header({ title = "TowerControl", subtitle = "Task Management", s ]; return ( -
+
{/* Layout mobile/tablette */}
@@ -284,17 +286,18 @@ export function Header({ title = "TowerControl", subtitle = "Task Management", s
- {/* Menu mobile/tablette en overlay fixe */} + {/* Menu mobile/tablette en modal */} {mobileMenuOpen && ( - <> - {/* Backdrop pour fermer le menu */} +
+ {/* Backdrop */}
setMobileMenuOpen(false)} /> - {/* Menu */} -
-
)} );