diff --git a/components/user/UserSwitcher.vue b/components/user/UserSwitcher.vue
index 7b36b39f..003f56e6 100644
--- a/components/user/UserSwitcher.vue
+++ b/components/user/UserSwitcher.vue
@@ -1,4 +1,6 @@
 <script setup lang="ts">
+import type { UserLogin } from '~~/types'
+
 const all = useUsers()
 
 const sorted = computed(() => {
@@ -7,21 +9,27 @@ const sorted = computed(() => {
     ...all.value.filter(account => account.token !== currentUser.value?.token),
   ].filter(Boolean)
 })
+
+const router = useRouter()
+const switchUser = (user: UserLogin) => {
+  if (user.account.id === currentUser.value?.account.id)
+    router.push(getAccountPath(user.account))
+  else loginTo(user)
+}
 </script>
 
 <template>
   <div min-w-80 mxa py2 flex="~ col">
     <template v-for="user of sorted" :key="user.id">
-      <Component
-        :is="user.token !== currentUser?.token ? 'button' : 'div'"
+      <button
         flex rounded px4 py3 text-left
-        :class="user.token !== currentUser?.token ? 'hover:bg-active cursor-pointer transition-100' : ''"
-        @click="loginTo(user)"
+        hover:bg-active cursor-pointer transition-100
+        @click="switchUser(user)"
       >
         <AccountInfo :account="user.account" />
         <div flex-auto />
         <div v-if="user.token === currentUser?.token" i-ri:check-line text-primary mya text-2xl />
-      </Component>
+      </button>
     </template>
     <div border="t base" pt2>
       <button btn-text flex="~ gap-1" items-center @click="openSigninDialog">