botserver/templates/partials/user_menu.html

112 lines
2.3 KiB
HTML

<div class="user-menu-dropdown">
<div class="user-info">
<div class="user-avatar-large">
{{ user_initial }}
</div>
<div class="user-details">
<div class="user-name">{{ user_name }}</div>
<div class="user-email">{{ user_email }}</div>
</div>
</div>
<div class="menu-divider"></div>
<a href="/profile" class="menu-item" hx-get="/profile" hx-push-url="true" hx-target="body">
<span>👤</span> Profile
</a>
<a href="/settings" class="menu-item" hx-get="/settings" hx-push-url="true" hx-target="body">
<span>⚙️</span> Settings
</a>
<a href="/help" class="menu-item" hx-get="/help" hx-push-url="true" hx-target="body">
<span></span> Help & Support
</a>
<div class="menu-divider"></div>
<button class="menu-item logout-btn"
hx-post="/logout"
hx-confirm="Are you sure you want to logout?">
<span>🚪</span> Logout
</button>
</div>
<style>
.user-menu-dropdown {
position: absolute;
top: 100%;
right: 0;
margin-top: 0.5rem;
background: var(--surface);
border: 1px solid var(--border);
border-radius: 8px;
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
min-width: 240px;
z-index: 1000;
}
.user-info {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 1rem;
}
.user-avatar-large {
width: 40px;
height: 40px;
background: var(--primary);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
font-size: 1.125rem;
}
.user-details {
flex: 1;
}
.user-name {
font-weight: 600;
font-size: 0.875rem;
}
.user-email {
font-size: 0.75rem;
color: var(--text-secondary);
}
.menu-divider {
height: 1px;
background: var(--border);
margin: 0.25rem 0;
}
.menu-item {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 0.625rem 1rem;
color: var(--text);
text-decoration: none;
font-size: 0.875rem;
transition: background 0.2s;
cursor: pointer;
border: none;
background: none;
width: 100%;
text-align: left;
}
.menu-item:hover {
background: var(--hover);
}
.logout-btn {
color: var(--error);
}
</style>