diff --git a/src/renderer/index.ts b/src/renderer/index.ts
index ea48e2e..3e14edb 100644
--- a/src/renderer/index.ts
+++ b/src/renderer/index.ts
@@ -30,18 +30,14 @@ async function onSettingWindowCreated(view: Element) {
const doc = parser.parseFromString([
'
',
``,
- `
-
-
-
- 正在检查LLOneBot版本中
- 请稍后
-
-
-
- `,
+ `
+
+ `,
SettingList([
- '',
+ SettingItem(
+ '正在检查 LLOneBot 更新', null,
+ SettingButton('请稍候', 'llonebot-update-button', 'secondary'),
+ ),
]),
SettingList([
SettingItem('启用 HTTP 服务', null,
@@ -98,7 +94,7 @@ async function onSettingWindowCreated(view: Element) {
``,
),
SettingItem(
- '启用CQ码上报格式,不启用则为消息段格式',
+ '新消息上报格式',
'如客户端无特殊需求推荐保持默认设置,两者的详细差异可参考 OneBot v11 文档',
SettingSelect([
{text: '消息段', value: 'array'},
@@ -182,18 +178,20 @@ async function onSettingWindowCreated(view: Element) {
' ',
].join(''), "text/html");
- let errorEle = doc.querySelector("#llonebot-error");
- errorEle.style.display = 'none';
const showError = async () => {
- setTimeout(async () => {
- let errMessage = await window.llonebot.getError();
- console.log(errMessage)
- errMessage = errMessage.replace(/\n/g, '
')
- errorEle.innerHTML = errMessage;
- errorEle.style.display = errMessage ? 'flex' : 'none';
- }, 1000)
+ await (new Promise((res) => setTimeout(() => res(true), 1000)));
+
+ const errDom = doc.querySelector('#llonebot-error');
+ const errCodeDom = errDom.querySelector('code');
+ const errMsg = await window.llonebot.getError();
+
+ if (!errMsg) return;
+
+ errDom.classList.add('show');
+ errCodeDom.innerHTML = errMsg;
}
- showError().then()
+ showError().then();
+
// 外链按钮
doc.querySelector('#open-github').addEventListener('click', () => {
window.LiteLoader.api.openExternal('https://github.com/LLOneBot/LLOneBot')
@@ -335,33 +333,39 @@ async function onSettingWindowCreated(view: Element) {
});
// 更新逻辑
async function checkVersionFunc(ResultVersion: CheckVersion) {
- console.log(ResultVersion);
+ const titleDom = view.querySelector("#llonebot-update-title")!;
+ const buttonDom = view.querySelector("#llonebot-update-button")!;
+
if (ResultVersion.version === "") {
- view.querySelector(".llonebot-update-title").innerHTML = "检查更新失败";
- view.querySelector(".llonebot-update-button").innerHTML = "点击重试";
- view.querySelector(".llonebot-update-button").addEventListener("click", async () => {
+ titleDom.innerHTML = "检查更新失败";
+ buttonDom.innerHTML = "点击重试";
+
+ buttonDom.addEventListener("click", async () => {
window.llonebot.checkVersion().then(checkVersionFunc);
});
+
return;
}
if (!ResultVersion.result) {
- view.querySelector(".llonebot-update-title").innerHTML = "当前已是最新版本 V" + ResultVersion.version;
- view.querySelector(".llonebot-update-button").innerHTML = "无需更新";
+ titleDom.innerHTML = "当前已是最新版本 v" + ResultVersion.version;
+ buttonDom.innerHTML = "无需更新";
} else {
- view.querySelector(".llonebot-update-title").innerHTML = "已检测到最新版本 V" + ResultVersion.version;
- view.querySelector(".llonebot-update-button").innerHTML = "点击更新";
+ titleDom.innerHTML = "已检测到最新版本 v" + ResultVersion.version;
+ buttonDom.innerHTML = "点击更新";
+ buttonDom.dataset.type = 'primary';
+
const update = async () => {
- view.querySelector(".llonebot-update-button").innerHTML = "正在更新中...";
+ buttonDom.innerHTML = "正在更新中...";
const result = await window.llonebot.updateLLOneBot();
if (result) {
- view.querySelector(".llonebot-update-button").innerHTML = "更新完成请重启";
- view.querySelector(".llonebot-update-button").removeEventListener("click", update);
+ buttonDom.innerHTML = "更新完成,请重启";
} else {
- view.querySelector(".llonebot-update-button").innerHTML = "更新失败前往仓库下载";
- view.querySelector(".llonebot-update-button").removeEventListener("click", update);
+ buttonDom.innerHTML = "更新失败,前往仓库下载";
}
+
+ buttonDom.removeEventListener("click", update);
}
- view.querySelector(".llonebot-update-button").addEventListener("click", update);
+ buttonDom.addEventListener("click", update);
}
}
window.llonebot.checkVersion().then(checkVersionFunc);
@@ -369,7 +373,6 @@ async function onSettingWindowCreated(view: Element) {
if (JSON.stringify(ob11Config) === JSON.stringify(config.ob11)) return;
config.ob11 = ob11Config;
window.llonebot.setConfig(true, config);
-
});
}
diff --git a/src/renderer/style.css b/src/renderer/style.css
index 842b702..f78e0af 100644
--- a/src/renderer/style.css
+++ b/src/renderer/style.css
@@ -157,9 +157,24 @@ ob-setting-select::part(option-list) {
}
#llonebot-error {
- padding-top: 10px;
- padding-bottom: 10px;
- overflow: visible;
- display: flex;
- align-items: center;
+ display: none;
}
+
+#llonebot-error setting-panel {
+ background: rgba(255, 0, 0, 0.5);
+ color: white;
+}
+
+#llonebot-error setting-panel pre {
+ margin: 0;
+ padding: 16px;
+ box-sizing: border-box;
+}
+
+#llonebot-error setting-panel pre code {
+ font-family: 'FiraCode Nerd Font', 'Fira Code', 'Cascadia Code', Consolas, 'Courier New', monospace;
+}
+
+#llonebot-error.show {
+ display: block;
+}
\ No newline at end of file