From de3db56e7bb27f4fc87fa50242574c0a7e0ec081 Mon Sep 17 00:00:00 2001 From: TZGyn Date: Wed, 30 Aug 2023 02:31:31 +0800 Subject: [PATCH] Extract user avatar in navbar into its own component --- components/navbar.tsx | 109 ++++++++++++++++++++++-------------------- 1 file changed, 57 insertions(+), 52 deletions(-) diff --git a/components/navbar.tsx b/components/navbar.tsx index 9aee2c0..991d75e 100644 --- a/components/navbar.tsx +++ b/components/navbar.tsx @@ -40,23 +40,11 @@ export const Navbar = ({ categories: BookmarkCategory[] }) => { const pathname = usePathname() - const router = useRouter() if (pathname.startsWith('/login') || pathname.startsWith('/signup')) { return <> } - const logout = async () => { - const response = await fetch('/api/auth/logout', { - method: 'POST', - }) - router.refresh() - } - - const login = () => { - router.push('/login') - } - return (
- - - } - /> - - - -

- Signed in as -

-

- {user ? user.email : 'Guest'} -

-
- {user ? ( - logout()}> - Log Out - - ) : ( - login()}> - Login - - )} -
-
+
@@ -181,3 +130,59 @@ export const Navbar = ({
) } + +function UserAvatar({ user }: { user: User | null }) { + const router = useRouter() + + const logout = async () => { + const response = await fetch('/api/auth/logout', { + method: 'POST', + }) + router.refresh() + } + + const login = () => { + router.push('/login') + } + + return ( + + + } + /> + + + +

Signed in as

+

+ {user ? user.email : 'Guest'} +

+
+ {user ? ( + logout()}> + Log Out + + ) : ( + login()}> + Login + + )} +
+
+ ) +}