diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 0162e74..99bd1ef 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -22,6 +22,7 @@ import ForgotPassword from "./components/auth/ForgotPassword"; import ProtectedRoute from "./components/shared/ProtectedRoute"; import PublicRoute from "./components/shared/PublicRoute"; + export default function App() { return ( @@ -81,7 +82,10 @@ export default function App() { } /> } /> } /> + + + diff --git a/frontend/src/components/shared/Navbar.jsx b/frontend/src/components/shared/Navbar.jsx index a88ce65..40698ef 100644 --- a/frontend/src/components/shared/Navbar.jsx +++ b/frontend/src/components/shared/Navbar.jsx @@ -204,116 +204,101 @@ export default function Navbar() { {/* ── Mega Menu Panel ── */} - {megaOpen && ( -
- {/* Top accent bar */} -
+
+ {/* Top accent bar */} +
-
-

- AI-Powered Tools — GSSoC '26 -

-
- {MEGA_MENU_ITEMS.map((item, i) => { - const Wrapper = item.to ? Link : "div"; - const hasSubmenu = item.submenu && item.submenu.length > 0; - - if (hasSubmenu) { - return ( -
-
-
- {item.icon} - - {item.label} - - {item.tag && ( - - {item.tag} - - )} -
-

- {item.desc} -

-
-
- {item.submenu.map((subItem, subIdx) => ( - -
- {subItem.icon} - - {subItem.label} - -
-

- {subItem.desc} -

- - ))} -
-
- ); - } - +
+ + +
+ {MEGA_MENU_ITEMS.map((item, i) => { + const Wrapper = item.to ? Link : "button"; + const hasSubmenu = item.submenu && item.submenu.length > 0; + + if (hasSubmenu) { return ( - -
- {item.icon} - - {item.label} - +
+
+ {item.icon} + + {item.label} + +
{item.tag && ( - + {item.tag} )}
-

- {item.desc} -

- +
+ {item.submenu.map((subItem) => ( + +
+ {subItem.icon} + + {subItem.label} + +
+

+ {subItem.desc} +

+ + ))} +
+
); - })} -
- - {/* Footer strip */} -
- - More tools shipping soon - - - View All → - -
+ } + + return ( + +
+ {item.icon} + + {item.label} + + {item.tag && ( + + {item.tag} + + )} +
+

+ {item.desc} +

+
+ ); + })}
+ +
- )} +
@@ -506,7 +491,7 @@ export default function Navbar() { return ( diff --git a/frontend/src/pages/DashboardPage.jsx b/frontend/src/pages/DashboardPage.jsx index d04c569..1c46264 100644 --- a/frontend/src/pages/DashboardPage.jsx +++ b/frontend/src/pages/DashboardPage.jsx @@ -1,6 +1,6 @@ import { useState } from "react"; import { useAuth } from "../context/AuthContext"; -import { useNavigate, Link } from "react-router-dom"; +import { Link,useNavigate } from "react-router-dom"; import Loader from "../components/shared/Loader"; import { useCodeforces } from "../hooks/useCodeforces"; import ConnectBanner from "../components/codeforces/ConnectBanner"; @@ -8,7 +8,7 @@ import VerifyModal from "../components/codeforces/VerifyModal"; import AIInsightPanel from "../components/ai/AIInsightPanel"; export default function DashboardPage() { - const { user, loading, logout } = useAuth(); + const { user, loading, logout } = useAuth(); const navigate = useNavigate(); const [modalOpen, setModalOpen] = useState(false); @@ -22,11 +22,13 @@ export default function DashboardPage() { connectLoading, connectError, } = useCodeforces(true); // dashboard mode = lightweight summary only - + const handleLogout = () => { - logout(); - navigate("/"); - }; + logout(); + navigate("/"); +}; + + if (loading) { return ; @@ -35,7 +37,7 @@ export default function DashboardPage() { return (
-
+

Command Center @@ -44,12 +46,7 @@ export default function DashboardPage() { Welcome back, {user?.name || "Engineer"}. Here is your unified growth telemetry.

- +
diff --git a/server/package-lock.json b/server/package-lock.json index 4855b92..826e9ba 100644 --- a/server/package-lock.json +++ b/server/package-lock.json @@ -1766,7 +1766,6 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz", "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==", "license": "MIT", - "peer": true, "engines": { "node": ">=10.0.0" },