@@ -11,34 +11,66 @@ const Header: React.FC = () => {
1111
1212 return (
1313 < header className = 'bg-brand-pink text-white p-4 shadow-md sticky top-0 z-50' >
14- < div className = 'container mx-auto flex items-center justify-between' >
15- { /* Left side: Logo and Title */ }
16- < div className = 'flex items-center' >
17- < img src = '/lift_logo.png' alt = 'Logo' className = 'h-10 mr-2' />
18- < h1 className = 'text-2xl font-bold' > Beacons</ h1 >
19- </ div >
20-
21- { /* Right side: User info & dashboard trigger */ }
22- { data . username ? (
23- < Dialog open = { isDashboardOpen } onOpenChange = { setIsDashboardOpen } >
24- < DialogTrigger asChild >
25- < div className = 'flex items-center border-2 border-white rounded-full px-3 py-1.5 sm:px-4 sm:py-2 cursor-pointer hover:bg-pink-600 transition-colors' >
26- < span className = 'hidden sm:inline mr-2' > Logged as: </ span >
27- < span className = 'mr-2 text-sm sm:text-base' > { data . username } </ span >
28- < SmallCircularQuestionCounter size = { 20 } />
14+ < div className = 'container mx-auto' >
15+ { /* Mobile: Stacked layout / Desktop: Single row with 3 items */ }
16+ < div className = 'flex flex-wrap items-center' >
17+ { /* Mobile: Top row with logo and login / Desktop: 3-column layout */ }
18+ < div className = 'flex w-full min-[580px]:w-auto items-center justify-between min-[580px]:justify-start' >
19+ { /* Logo - always left */ }
20+ < img src = '/lift_logo.png' alt = 'Logo' className = 'h-8 sm:h-10 mr-2 shrink-0' />
21+
22+ { /* Login - right on mobile, disappears on desktop (reappears in its desktop position) */ }
23+ < div className = "min-[580px]:hidden" >
24+ { data . username ? (
25+ < Dialog open = { isDashboardOpen } onOpenChange = { setIsDashboardOpen } >
26+ < DialogTrigger asChild >
27+ < div className = 'flex items-center shrink-0 border-2 border-white rounded-full px-2 py-1 sm:px-4 sm:py-2 cursor-pointer hover:bg-pink-600 transition-colors' >
28+ < span className = 'hidden sm:inline mr-2' > Logged as: </ span >
29+ < span className = 'mr-2 text-xs sm:text-base truncate max-w-[100px] sm:max-w-[150px]' > { data . username } </ span >
30+ < SmallCircularQuestionCounter size = { 18 } />
31+ </ div >
32+ </ DialogTrigger >
33+ < UserDataModal
34+ onOpenChange = { setIsDashboardOpen }
35+ />
36+ </ Dialog >
37+ ) : (
38+ < div className = 'flex shrink-0 items-center border-2 border-white rounded-full px-2 py-1 sm:px-4 sm:py-2 cursor-default' >
39+ < span className = 'hidden sm:inline mr-2' > Not logged in</ span >
40+ < span className = 'sm:hidden mr-2 text-xs' > Guest</ span >
41+ < SmallCircularQuestionCounter size = { 18 } />
42+ </ div >
43+ ) }
44+ </ div >
45+ </ div >
46+
47+ { /* Title - bottom row on mobile, center column on desktop */ }
48+ < h1 className = 'text-xl sm:text-2xl font-bold w-full min-[580px]:w-auto min-[580px]:flex-1 text-left min-[580px]:text-center mt-2 min-[580px]:mt-0' > Beacons</ h1 >
49+
50+ { /* Login - hidden on mobile (appears in mobile top row), right on desktop */ }
51+ < div className = "hidden min-[580px]:block" >
52+ { data . username ? (
53+ < Dialog open = { isDashboardOpen } onOpenChange = { setIsDashboardOpen } >
54+ < DialogTrigger asChild >
55+ < div className = 'flex items-center shrink-0 border-2 border-white rounded-full px-2 py-1 sm:px-4 sm:py-2 cursor-pointer hover:bg-pink-600 transition-colors' >
56+ < span className = 'hidden sm:inline mr-2' > Logged as: </ span >
57+ < span className = 'mr-2 text-xs sm:text-base truncate max-w-[100px] sm:max-w-[150px]' > { data . username } </ span >
58+ < SmallCircularQuestionCounter size = { 18 } />
59+ </ div >
60+ </ DialogTrigger >
61+ < UserDataModal
62+ onOpenChange = { setIsDashboardOpen }
63+ />
64+ </ Dialog >
65+ ) : (
66+ < div className = 'flex shrink-0 items-center border-2 border-white rounded-full px-2 py-1 sm:px-4 sm:py-2 cursor-default' >
67+ < span className = 'hidden sm:inline mr-2' > Not logged in</ span >
68+ < span className = 'sm:hidden mr-2 text-xs' > Guest</ span >
69+ < SmallCircularQuestionCounter size = { 18 } />
2970 </ div >
30- </ DialogTrigger >
31- < UserDataModal
32- onOpenChange = { setIsDashboardOpen }
33- />
34- </ Dialog >
35- ) : (
36- < div className = 'flex items-center border-2 border-white rounded-full px-3 py-1.5 sm:px-4 sm:py-2 cursor-default' >
37- < span className = 'hidden sm:inline mr-2' > Not logged in</ span >
38- < span className = 'sm:hidden mr-2' > Guest</ span >
39- < SmallCircularQuestionCounter size = { 20 } />
71+ ) }
4072 </ div >
41- ) }
73+ </ div >
4274 </ div >
4375 </ header >
4476 ) ;
0 commit comments