From b3f4adeb3eff282908cd2bb88586923e8d59436b Mon Sep 17 00:00:00 2001 From: jtricerolph Date: Wed, 22 Jul 2026 11:10:05 +0000 Subject: [PATCH] Add name, email and sign out button to sidebar footer Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/Layout.tsx | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/frontend/src/components/Layout.tsx b/frontend/src/components/Layout.tsx index 5271ef7..5ea7866 100644 --- a/frontend/src/components/Layout.tsx +++ b/frontend/src/components/Layout.tsx @@ -1,6 +1,6 @@ import { useState, useEffect } from 'react' import { NavLink, useLocation } from 'react-router-dom' -import { Wrench, ClipboardList, History, Boxes, HardHat, Repeat, MapPin, Settings, Menu } from 'lucide-react' +import { Wrench, ClipboardList, History, Boxes, HardHat, Repeat, MapPin, Settings, Menu, LogOut } from 'lucide-react' import { useAuth } from './AuthGate' import { can } from '../types' @@ -22,6 +22,11 @@ export default function Layout({ children }: { children: React.ReactNode }) { const location = useLocation() const [menuOpen, setMenuOpen] = useState(false) + async function logout() { + await fetch('/maintenance/api/auth/logout', { method: 'POST', credentials: 'include' }) + window.location.reload() + } + useEffect(() => { setMenuOpen(false) }, [location.pathname]) return ( @@ -39,7 +44,18 @@ export default function Layout({ children }: { children: React.ReactNode }) { ))} -
{user.name}
+
+
{user.name}
+
{user.email}
+ +
{menuOpen &&
setMenuOpen(false)} />}