- 新增试用用户首次登录欢迎弹窗,展示使用教程 - 新增试用期过期检测服务和过期提醒弹窗 - 从 JWT token 中提取 ispluginTrial 标识判断用户类型 - 试用用户跳过邀请码验证流程 - 在消息发送前检查试用期是否过期 - 新增 ExpiredPanel 和 WelcomePanel 面板组件 - 新增 expiredModal 和 welcomeModal 视图组件 - 优化用户登录流程,根据用户类型显示不同引导
79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
/**
|
||
* 试用期到期提醒面板
|
||
* 功能:试用期到期时显示续费提示
|
||
* 依赖:vscode
|
||
* 使用场景:试用用户到期时显示
|
||
*/
|
||
|
||
import * as vscode from 'vscode';
|
||
|
||
export class ExpiredPanel {
|
||
public static render() {
|
||
const panel = vscode.window.createWebviewPanel(
|
||
'icCoderExpired',
|
||
'试用期已到期',
|
||
vscode.ViewColumn.One,
|
||
{ enableScripts: true }
|
||
);
|
||
|
||
panel.webview.html = this.getHtmlContent();
|
||
}
|
||
|
||
private static getHtmlContent(): string {
|
||
return `
|
||
<!DOCTYPE html>
|
||
<html lang="zh-CN">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<style>
|
||
body {
|
||
padding: 60px 40px;
|
||
text-align: center;
|
||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||
color: var(--vscode-foreground);
|
||
background-color: var(--vscode-editor-background);
|
||
}
|
||
h1 {
|
||
color: var(--vscode-errorForeground);
|
||
font-size: 28px;
|
||
margin-bottom: 20px;
|
||
}
|
||
p {
|
||
font-size: 16px;
|
||
line-height: 1.6;
|
||
margin: 15px 0;
|
||
color: var(--vscode-descriptionForeground);
|
||
}
|
||
.button {
|
||
padding: 12px 30px;
|
||
background: var(--vscode-button-background);
|
||
color: var(--vscode-button-foreground);
|
||
border: none;
|
||
border-radius: 4px;
|
||
cursor: pointer;
|
||
font-size: 16px;
|
||
margin: 10px;
|
||
}
|
||
.button:hover {
|
||
background: var(--vscode-button-hoverBackground);
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<h1>⏰ 您的试用期已到期</h1>
|
||
<p>感谢您使用 IC Coder!您的 15 天试用期已结束。</p>
|
||
<p>如需继续使用,请联系我们获取正式版本。</p>
|
||
|
||
<button class="button" onclick="contact()">联系我们</button>
|
||
|
||
<script>
|
||
function contact() {
|
||
window.open('https://iccoder.com/contact', '_blank');
|
||
}
|
||
</script>
|
||
</body>
|
||
</html>
|
||
`;
|
||
}
|
||
}
|