diff --git a/app/page.jsx b/app/page.jsx index 5f0ae39..86785f7 100644 --- a/app/page.jsx +++ b/app/page.jsx @@ -23,6 +23,7 @@ export default function Home() { const [user, setUser] = useState(null); const [claimStatus, setClaimStatus] = useState('unclaimed'); // 'unclaimed' | 'claimed' | 'no_match' const [claimedLogins, setClaimedLogins] = useState(new Set()); + const [sidebarOpen, setSidebarOpen] = useState(false); const globeRef = useRef(null); useEffect(() => { @@ -149,11 +150,16 @@ export default function Home() { const handleSelectDev = useCallback((dev) => { setSelectedDev(dev); + setSidebarOpen(false); if (dev?.lat != null && dev?.lng != null) { setFlyTarget({ lat: dev.lat, lng: dev.lng }); } }, []); + const handleToggleSidebar = useCallback(() => { + setSidebarOpen(prev => !prev); + }, []); + const handleSelectCountry = useCallback((country, view) => { setSelectedCountry(country); if (view) { @@ -174,6 +180,7 @@ export default function Home() { setFiltered(developers); setFlyTarget(null); setSelectedCountry(''); + setSidebarOpen(false); }, [developers]); if (loading || error) { @@ -182,7 +189,17 @@ export default function Home() { return (
-
+
setSidebarOpen(false)} /> + {sidebarOpen && ( +
setSidebarOpen(false)} /> + )} {selectedDev && ( )} diff --git a/components/Header.jsx b/components/Header.jsx index 9753155..20efdde 100644 --- a/components/Header.jsx +++ b/components/Header.jsx @@ -3,7 +3,7 @@ import React from 'react'; import UserMenu from './UserMenu.jsx'; -export default function Header({ onHome, theme, onToggleTheme, user, onLogout, onClaim, claimStatus }) { +export default function Header({ onHome, theme, onToggleTheme, user, onLogout, onClaim, claimStatus, sidebarOpen, onToggleSidebar }) { return (
@@ -12,6 +12,23 @@ export default function Header({ onHome, theme, onToggleTheme, user, onLogout, o Visualizing the World's Top Open-Source Contributors
+
diff --git a/components/Leaderboard.jsx b/components/Leaderboard.jsx index 0037cb7..1c93df7 100644 --- a/components/Leaderboard.jsx +++ b/components/Leaderboard.jsx @@ -14,6 +14,8 @@ export default function Leaderboard({ countryFilter = '', onCountryFilterChange, claimedLogins, + open = false, + onClose, }) { const listRef = useRef(null); const [scrollTop, setScrollTop] = useState(0); @@ -115,7 +117,8 @@ export default function Leaderboard({ }; return ( -