@@ -12,6 +12,8 @@ import { useToast } from '@/contexts/ui/ToastContext';
1212import { getAllBadges } from '@/lib/firebase/firebase-types' ;
1313import { Tooltip } from '@/components/ui/Tooltip' ;
1414import { accountService } from '@/lib/firebase/firebase-service' ;
15+ import { ReferralInvitationModal } from '@/components/ui/referral' ;
16+ import { LeaderboardSidebar } from '@/components/ui/LeaderboardSidebar' ;
1517import Image from 'next/image' ;
1618
1719export const UserDropdown = ( ) => {
@@ -26,6 +28,8 @@ export const UserDropdown = () => {
2628 const [ tempName , setTempName ] = useState ( '' ) ;
2729 const [ isSaving , setIsSaving ] = useState ( false ) ;
2830 const [ isDisconnecting , setIsDisconnecting ] = useState ( false ) ;
31+ const [ isReferralModalOpen , setIsReferralModalOpen ] = useState ( false ) ;
32+ const [ isLeaderboardOpen , setIsLeaderboardOpen ] = useState ( false ) ;
2933 const dropdownRef = useRef < HTMLDivElement > ( null ) ;
3034
3135 // Check if user has unlocked mini-games access (earned Nexus Master badge)
@@ -387,17 +391,7 @@ export const UserDropdown = () => {
387391 </div> */ }
388392 </ div >
389393 </ div >
390- < button
391- onClick = { ( ) => {
392- // Dispatch custom event to open rewards dropdown
393- window . dispatchEvent ( new CustomEvent ( 'toggleRewardsSidebar' ) ) ;
394- setIsOpen ( false ) ;
395- } }
396- className = 'w-full flex items-center space-x-3 mt-2 text-brand-300 hover:text-white hover:bg-white/10 rounded-lg transition-colors duration-200 text-sm'
397- >
398- < span className = 'text-lg' > 🎮</ span >
399- < span > Check your Progress</ span >
400- </ button >
394+
401395 </ div >
402396
403397 { /* Network Status */ }
@@ -478,6 +472,44 @@ export const UserDropdown = () => {
478472 </ a >
479473 </ Tooltip >
480474
475+ < hr />
476+ { /* Quick Action Buttons */ }
477+ < div className = 'space-y-2 mt-2' >
478+ < button
479+ onClick = { ( ) => {
480+ // Dispatch custom event to open rewards dropdown
481+ window . dispatchEvent ( new CustomEvent ( 'toggleRewardsSidebar' ) ) ;
482+ setIsOpen ( false ) ;
483+ } }
484+ className = 'w-full flex items-center space-x-3 text-brand-300 hover:text-white hover:bg-white/10 rounded-lg transition-colors duration-200 text-sm px-3 py-2'
485+ >
486+ < span className = 'text-lg' > 🎮</ span >
487+ < span > Rewards & Progress </ span >
488+ </ button >
489+
490+ < button
491+ onClick = { ( ) => {
492+ setIsLeaderboardOpen ( true ) ;
493+ setIsOpen ( false ) ;
494+ } }
495+ className = 'w-full flex items-center space-x-3 text-yellow-300 hover:text-white hover:bg-white/10 rounded-lg transition-colors duration-200 text-sm px-3 py-2'
496+ >
497+ < span className = 'text-lg' > 🏆</ span >
498+ < span > Global Leaderboard</ span >
499+ </ button >
500+
501+ < button
502+ onClick = { ( ) => {
503+ setIsReferralModalOpen ( true ) ;
504+ setIsOpen ( false ) ;
505+ } }
506+ className = 'w-full flex items-center space-x-3 text-purple-300 hover:text-white hover:bg-white/10 rounded-lg transition-colors duration-200 text-sm px-3 py-2'
507+ >
508+ < span className = 'text-lg' > 🎴</ span >
509+ < span > Referral Center</ span >
510+ </ button >
511+ </ div >
512+
481513 < hr />
482514
483515 < button
@@ -503,6 +535,19 @@ export const UserDropdown = () => {
503535 </ div >
504536 ) }
505537
538+ { /* Referral Invitation Modal */ }
539+ < ReferralInvitationModal
540+ isOpen = { isReferralModalOpen }
541+ onClose = { ( ) => setIsReferralModalOpen ( false ) }
542+ account = { account }
543+ />
544+
545+ { /* Leaderboard Sidebar */ }
546+ < LeaderboardSidebar
547+ isOpen = { isLeaderboardOpen }
548+ onClose = { ( ) => setIsLeaderboardOpen ( false ) }
549+ />
550+
506551 </ div >
507552 ) ;
508553} ;
0 commit comments