feat:实现了点击头像和用户名进行跳转到首页
这里还需要完善的地方: - 跳转到Web端还需要进行登录,如果要自动登录 - 需要后端给个临时的授权码 - 这样就不用前端传递token然后自动登录了 - 避免了token暴露的风险
This commit is contained in:
@ -350,6 +350,10 @@ export async function showICHelperPanel(
|
||||
// 退出登录
|
||||
vscode.commands.executeCommand("ic-coder.logout");
|
||||
break;
|
||||
case "openICCoder":
|
||||
// 跳转到 IC Coder 官网
|
||||
vscode.env.openExternal(vscode.Uri.parse("https://www.iccoder.com"));
|
||||
break;
|
||||
case "openUserManual":
|
||||
// 打开用户手册
|
||||
vscode.env.openExternal(vscode.Uri.parse("https://www.iccoder.com"));
|
||||
|
||||
@ -14,13 +14,13 @@ export function getUserInfoComponentContent(): string {
|
||||
<div class="user-detail-dropdown" id="userDetailDropdown">
|
||||
<div class="user-detail-content">
|
||||
<div class="user-detail-header">
|
||||
<div class="user-avatar-small">
|
||||
<div class="user-avatar-small clickable" id="userAvatarClickable">
|
||||
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z" fill="currentColor"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div class="user-name-tier">
|
||||
<div class="user-detail-name" id="userDetailName">加载中...</div>
|
||||
<div class="user-detail-name clickable" id="userDetailName">加载中...</div>
|
||||
<img class="tier-icon-inline" id="tierIconInline" style="display: none;" />
|
||||
</div>
|
||||
</div>
|
||||
@ -103,6 +103,16 @@ export function getUserInfoComponentStyles(): string {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0 2px 8px rgba(0, 122, 204, 0.3);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.user-avatar-small.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.user-avatar-small.clickable:hover {
|
||||
transform: scale(1.1);
|
||||
box-shadow: 0 4px 12px rgba(0, 122, 204, 0.5);
|
||||
}
|
||||
|
||||
.user-avatar-small svg {
|
||||
@ -122,6 +132,16 @@ export function getUserInfoComponentStyles(): string {
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: var(--vscode-foreground);
|
||||
transition: all 0.2s ease;
|
||||
}
|
||||
|
||||
.user-detail-name.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.user-detail-name.clickable:hover {
|
||||
color: #007acc;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.tier-icon-inline {
|
||||
@ -248,6 +268,12 @@ export function getUserInfoComponentScript(): string {
|
||||
vscode.postMessage({ command: 'logout' });
|
||||
}
|
||||
|
||||
// 跳转到 IC Coder 官网
|
||||
function openICCoder() {
|
||||
console.log("跳转到 IC Coder 官网");
|
||||
vscode.postMessage({ command: 'openICCoder' });
|
||||
}
|
||||
|
||||
// 关闭用户详情下拉面板
|
||||
function closeUserDetailModal() {
|
||||
const dropdown = document.getElementById('userDetailDropdown');
|
||||
@ -317,6 +343,24 @@ export function getUserInfoComponentScript(): string {
|
||||
});
|
||||
}
|
||||
|
||||
// 绑定头像点击事件
|
||||
const userAvatar = document.getElementById('userAvatarClickable');
|
||||
if (userAvatar) {
|
||||
userAvatar.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
openICCoder();
|
||||
});
|
||||
}
|
||||
|
||||
// 绑定用户名点击事件
|
||||
const userName = document.getElementById('userDetailName');
|
||||
if (userName) {
|
||||
userName.addEventListener('click', (e) => {
|
||||
e.stopPropagation();
|
||||
openICCoder();
|
||||
});
|
||||
}
|
||||
|
||||
// 点击页面其他地方关闭下拉面板
|
||||
document.addEventListener('click', (e) => {
|
||||
const dropdown = document.getElementById('userDetailDropdown');
|
||||
|
||||
Reference in New Issue
Block a user