feat/获取用户信息+展示用户名称

This commit is contained in:
Roe-xin
2026-01-09 15:26:33 +08:00
parent 4037e9e2d7
commit 940584e1ea
9 changed files with 423 additions and 8 deletions

View File

@ -18,6 +18,7 @@ import { compactDialog } from "../services/apiClient";
import { VCDViewerPanel } from "./VCDViewerPanel";
import { ChatHistoryManager } from "../utils/chatHistoryManager";
import { MessageType } from "../types/chatHistory";
import { getCachedUserInfo } from "../services/userService";
/**
* 创建并显示 IC 助手面板
@ -108,6 +109,43 @@ export async function showICHelperPanel(
maxIconUri.toString()
);
// 获取并发送用户信息到 webview
try {
// 优先使用缓存的用户信息
let userInfo = getCachedUserInfo();
if (userInfo) {
// 使用缓存的用户信息
console.log('[ICHelperPanel] 使用缓存的用户信息:', userInfo);
panel.webview.postMessage({
command: 'updateUserInfo',
userInfo: {
userId: userInfo.userId,
nickname: userInfo.nickname,
username: userInfo.username
}
});
} else {
// 如果没有缓存,从 session 中获取
const session = await vscode.authentication.getSession("iccoder", [], {
createIfNone: false,
});
if (session) {
console.log('[ICHelperPanel] 从 session 获取用户信息, account:', session.account);
panel.webview.postMessage({
command: 'updateUserInfo',
userInfo: {
userId: session.account.id,
nickname: session.account.label,
username: session.account.label
}
});
}
}
} catch (error) {
console.error('[ICHelperPanel] 获取用户信息失败:', error);
}
// 处理消息
panel.webview.onDidReceiveMessage(
async (message) => {