always show the logout button

This commit is contained in:
Cipher Vance
2026-01-21 08:06:30 -06:00
parent a4b09e8625
commit 3dd3f5788b

View File

@@ -126,7 +126,7 @@
<!-- User Profile Section --> <!-- User Profile Section -->
<div class="sidebar-user"> <div class="sidebar-user">
<button class="sidebar-user-trigger" @click="toggleUserMenu"> <div class="sidebar-user-info">
<div class="user-avatar-sidebar"> <div class="user-avatar-sidebar">
<svg viewBox="0 0 24 24" fill="none"> <svg viewBox="0 0 24 24" fill="none">
<circle cx="12" cy="8" r="4" stroke="currentColor" stroke-width="2"/> <circle cx="12" cy="8" r="4" stroke="currentColor" stroke-width="2"/>
@@ -137,22 +137,17 @@
<span class="username">{{ auth.user?.username || 'User' }}</span> <span class="username">{{ auth.user?.username || 'User' }}</span>
<small>{{ auth.user?.email || 'user@example.com' }}</small> <small>{{ auth.user?.email || 'user@example.com' }}</small>
</div> </div>
<svg v-show="!sidebarCollapsed" viewBox="0 0 24 24" fill="none" class="chevron">
<path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</button>
<!-- User Dropdown -->
<div class="user-dropdown-sidebar" :class="{ active: userMenuOpen }">
<button @click="handleLogout" class="dropdown-item-sidebar">
<svg viewBox="0 0 24 24" fill="none">
<path d="M9 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<polyline points="16,17 21,12 16,7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<line x1="21" y1="12" x2="9" y2="12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
</svg>
<span>Logout</span>
</button>
</div> </div>
<!-- Logout Button -->
<button @click="handleLogout" class="sidebar-link sidebar-logout">
<svg viewBox="0 0 24 24" fill="none">
<path d="M9 21H5C4.46957 21 3.96086 20.7893 3.58579 20.4142C3.21071 20.0391 3 19.5304 3 19V5C3 4.46957 3.21071 3.96086 3.58579 3.58579C3.96086 3.21071 4.46957 3 5 3H9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<polyline points="16,17 21,12 16,7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<line x1="21" y1="12" x2="9" y2="12" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
</svg>
<span v-show="!sidebarCollapsed">Logout</span>
</button>
</div> </div>
</div> </div>
</aside> </aside>
@@ -451,25 +446,24 @@ updateBodyClass()
SIDEBAR USER SECTION SIDEBAR USER SECTION
============================================ */ ============================================ */
.sidebar-user { .sidebar-user {
position: relative; display: flex;
flex-direction: column;
gap: var(--spacing-sm);
} }
.sidebar-user-trigger { .sidebar-user-info {
display: flex; display: flex;
align-items: center; align-items: center;
gap: var(--spacing-sm); gap: var(--spacing-sm);
width: 100%;
padding: var(--spacing-md); padding: var(--spacing-md);
border-radius: 8px; border-radius: 8px;
background: var(--color-surface-secondary); background: var(--color-surface-secondary);
border: 1px solid var(--color-border); border: 1px solid var(--color-border);
cursor: pointer;
transition: all var(--transition-base);
} }
.sidebar-user-trigger:hover { .sidebar-nav.collapsed .sidebar-user-info {
background: var(--color-surface-hover); padding: var(--spacing-sm);
border-color: var(--color-primary); justify-content: center;
} }
.user-avatar-sidebar { .user-avatar-sidebar {
@@ -514,64 +508,23 @@ updateBodyClass()
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.chevron { /* Logout Button */
width: 16px; .sidebar-logout {
height: 16px;
color: var(--color-text-secondary);
flex-shrink: 0;
transition: transform var(--transition-base);
}
.sidebar-user-trigger:hover .chevron {
transform: translateY(2px);
}
.user-dropdown-sidebar {
max-height: 0;
overflow: hidden;
transition: max-height var(--transition-base);
margin-top: var(--spacing-xs);
border-radius: 8px;
background: var(--color-surface);
border: 1px solid var(--color-border);
}
.user-dropdown-sidebar.active {
max-height: 200px;
}
.dropdown-item-sidebar {
display: flex;
align-items: center;
gap: var(--spacing-sm);
padding: var(--spacing-md);
color: var(--color-danger); color: var(--color-danger);
background: none; margin-bottom: 0;
border: none;
width: 100%;
text-align: left;
cursor: pointer;
font-size: var(--font-size-sm);
font-weight: var(--font-weight-medium);
transition: all var(--transition-base);
} }
.dropdown-item-sidebar:hover { .sidebar-logout:hover {
background: rgba(230, 57, 70, 0.08); background: rgba(230, 57, 70, 0.1);
color: var(--color-danger);
} }
.dropdown-item-sidebar svg { .sidebar-logout svg {
width: 18px; color: var(--color-danger);
height: 18px;
} }
.sidebar-nav.collapsed .sidebar-user-trigger { .sidebar-logout:hover svg {
padding: var(--spacing-sm); color: var(--color-danger);
justify-content: center;
}
.sidebar-nav.collapsed .user-dropdown-sidebar {
display: none;
} }
/* ============================================ /* ============================================