From a5d00da6eaec2ddb57dc0d6f955efc856376e97c Mon Sep 17 00:00:00 2001 From: niko <57009359+hauntii@users.noreply.github.com> Date: Mon, 26 May 2025 05:39:11 -0400 Subject: [PATCH] feat: navbar reacts to login + logout route --- src/components/Navbar/Navbar.vue | 51 +++++++++++++++++++------- src/server/api/account/info/index.ts | 31 ++++++++++++++++ src/server/api/account/logout/index.ts | 9 +++++ 3 files changed, 77 insertions(+), 14 deletions(-) create mode 100644 src/server/api/account/info/index.ts create mode 100644 src/server/api/account/logout/index.ts diff --git a/src/components/Navbar/Navbar.vue b/src/components/Navbar/Navbar.vue index f940cac..91f1b0d 100644 --- a/src/components/Navbar/Navbar.vue +++ b/src/components/Navbar/Navbar.vue @@ -2,7 +2,6 @@ const { locales, setLocale } = useI18n(); const openDropdown = ref(false); -const loggedIn = ref(false); function handleDropdownButton(dropdown: boolean | string) { if (!openDropdown.value) { openDropdown.value = dropdown; @@ -20,6 +19,26 @@ onMounted(() => { scrollY.value = window.scrollY; }); }); + +interface InfoCCResponse { + username: string; + mii: { + name: string; + image_url: string; + }; +} + +const route = useRoute(); +const accountInfo = await useFetch('/api/account/info'); // TODO: does doing this cause too many requests? can't depend on route due to hydration issues + +async function logoutClick() { + await $fetch('/api/account/logout'); + accountInfo.clear(); + + if (route.path == '/account') { + navigateTo('/'); + } +}