♻️ showSnackbar重构

This commit is contained in:
目棃
2024-11-14 18:01:38 +08:00
parent 20b9631468
commit ac6dbe0cdf
69 changed files with 614 additions and 1098 deletions

View File

@@ -456,7 +456,7 @@ class TGClient {
try {
await windowFind.destroy();
} catch (e) {
showSnackbar({ text: `[TGClient][open] ${e}`, color: "error" });
showSnackbar.error(`[TGClient][open] ${e}`);
await TGLogger.Error(`[TGClient][open] ${e}`);
}
}
@@ -721,10 +721,7 @@ class TGClient {
console.log(`[openApplication] ${JSON.stringify(arg.payload)}`);
const appWindow = await webviewWindow.WebviewWindow.getByLabel("TeyvatGuide");
await appWindow?.setFocus();
showSnackbar({
text: `不支持的操作OpenApplication(${JSON.stringify(arg.payload)})`,
color: "error",
});
showSnackbar.error(`不支持的操作OpenApplication(${JSON.stringify(arg.payload)})`);
await new Promise<void>((resolve) => setTimeout(() => resolve(), 1500));
const windowFind = await webviewWindow.WebviewWindow.getByLabel("mhy_client");
if (windowFind !== null) await windowFind.setFocus();
@@ -761,7 +758,7 @@ class TGClient {
if (appWindow != null) {
await appWindow.setFocus();
}
showSnackbar({ text: `未知链接:${arg.payload.page}`, color: "error", timeout: 3000 });
showSnackbar.error(`未知链接:${arg.payload.page}`, 3000);
await new Promise<void>((resolve) => {
setTimeout(() => {
resolve();

View File

@@ -37,12 +37,12 @@ export async function saveCanvasImg(
});
if (res === null) {
await TGLogger.Info(`[saveCanvasImg][${filename}] 未选择保存路径`);
showSnackbar({ text: "未选择保存路径", color: "cancel" });
showSnackbar.cancel("未选择保存路径");
return;
}
await writeFile(res, buffer);
await TGLogger.Info(`[saveCanvasImg][${filename}] 已将图像保存到本地`);
showSnackbar({ text: `已将 ${filename} 保存到本地` });
showSnackbar.success(`已将 ${filename} 保存到本地`);
}
/**
@@ -132,7 +132,7 @@ export async function generateShareImg(
const sizeStr = bytesToSize(size);
await TGLogger.Info(`[generateShareImg][${fileName}] 图像大小为 ${sizeStr}`);
if (size > 80000000) {
showSnackbar({ text: `图像大小为 ${sizeStr},过大,无法保存`, color: "warn", timeout: 3000 });
showSnackbar.warn(`图像过大(${sizeStr}),无法保存`, 3000);
return;
}
if (size > 20000000) {
@@ -145,11 +145,11 @@ export async function generateShareImg(
await saveCanvasImg(buffer, fileName);
return;
}
showSnackbar({ color: "warn", text: "将尝试保存到剪贴板" });
showSnackbar.warn("将尝试保存到剪贴板");
}
try {
await copyToClipboard(buffer);
showSnackbar({ text: `已将 ${fileName} 复制到剪贴板,大小为 ${sizeStr}` });
showSnackbar.success(`已将 ${fileName} 复制到剪贴板,大小为 ${sizeStr}`);
await TGLogger.Info(`[generateShareImg][${fileName}] 已将图像复制到剪贴板`);
} catch (e) {
await TGLogger.Error(`[generateShareImg][${fileName}] 复制到剪贴板失败 ${e}`);

View File

@@ -23,12 +23,12 @@ class TGShell {
async openPath(path: string): Promise<void> {
const plat = platform();
let command: string;
if (plat === "windows") command = "win_open";
else if (plat === "macos") command = "mac_open";
else {
showSnackbar({ text: "暂不支持该平台", color: "warn" });
if (plat !== "windows" && plat !== "macos") {
showSnackbar.warn("暂不支持该平台");
return;
}
if (plat === "windows") command = "win_open";
else command = "mac_open";
await Command.create(command, [path]).execute();
}
}

View File

@@ -36,6 +36,7 @@ export async function getUiafHeader(): Promise<TGApp.Plugins.UIAF.Export> {
*/
export async function verifyUiafData(path: string): Promise<boolean> {
const fileData: string = await readTextFile(path);
// @ts-expect-error-next-line
const ajv = new Ajv();
const validate = ajv.compile(UiafSchema);
try {
@@ -43,17 +44,14 @@ export async function verifyUiafData(path: string): Promise<boolean> {
if (!validate(fileJson)) {
if (validate.errors === undefined || validate.errors === null) return false;
const error: ErrorObject = validate.errors[0];
showSnackbar({
text: `${error.instancePath || error.schemaPath} ${error.message}`,
color: "error",
});
showSnackbar.error(`${error.instancePath || error.schemaPath} ${error.message}`);
await TGLogger.Error(`UIAF 数据验证失败,文件路径:${path}`);
await TGLogger.Error(`错误信息 ${validate.errors?.toString()}`);
return false;
}
return true;
} catch (e) {
showSnackbar({ text: `UIAF 数据格式错误 ${e}`, color: "error" });
showSnackbar.error(`UIAF 数据格式错误 ${e}`);
await TGLogger.Error(`UIAF 数据格式错误,文件路径:${path}`);
await TGLogger.Error(`错误信息 ${e}`);
return false;
@@ -66,6 +64,7 @@ export async function verifyUiafData(path: string): Promise<boolean> {
* @returns {boolean} 是否验证通过
*/
export async function verifyUiafDataClipboard(): Promise<boolean> {
// @ts-expect-error-next-line
const ajv = new Ajv();
const validate = ajv.compile(UiafSchema);
const data = await window.navigator.clipboard.readText();
@@ -74,17 +73,14 @@ export async function verifyUiafDataClipboard(): Promise<boolean> {
if (!validate(fileJson)) {
if (validate.errors === undefined || validate.errors === null) return false;
const error: ErrorObject = validate.errors[0];
showSnackbar({
text: `${error.instancePath || error.schemaPath} ${error.message}`,
color: "error",
});
showSnackbar.error(`${error.instancePath || error.schemaPath} ${error.message}`);
await TGLogger.Error(`UIAF 数据验证失败,剪贴板数据:${data}`);
await TGLogger.Error(`错误信息 ${validate.errors}`);
return false;
}
return true;
} catch (e) {
showSnackbar({ text: `UIAF 数据格式错误 ${e}`, color: "error" });
showSnackbar.error(`UIAF 数据格式错误 ${e}`);
await TGLogger.Error(`UIAF 数据格式错误,剪贴板数据:${data}`);
await TGLogger.Error(`错误信息 ${e}`);
return false;

View File

@@ -102,7 +102,7 @@ export async function verifyUigfData(path: string, isVersion4: boolean = false):
if (isVersion4) return validateUigf4Data(fileJson);
return validateUigfData(fileJson);
} catch (e) {
showSnackbar({ text: `UIGF 数据格式错误 ${e}`, color: "error" });
showSnackbar.error(`UIGF 数据格式错误 ${e}`);
await TGLogger.Error(`UIGF 数据格式错误,文件路径:${path}`);
await TGLogger.Error(`错误信息 ${e}`);
return false;
@@ -121,18 +121,12 @@ function validateUigfData(data: object): boolean {
if (!validate(data)) {
if (!validate.errors || validate.errors.length === 0) return false;
const error: ErrorObject = validate.errors[0];
showSnackbar({
text: `${error.instancePath || error.schemaPath} ${error.message}`,
color: "error",
});
showSnackbar.error(`${error.instancePath || error.schemaPath} ${error.message}`);
return false;
}
const parsedData: TGApp.Plugins.UIGF.Schema = <TGApp.Plugins.UIGF.Schema>data;
if (parsedData.info.uigf_version < "v2.3") {
showSnackbar({
text: "UIGF 版本过低,请使用 v2.3 或以上版本",
color: "error",
});
showSnackbar.error("UIGF 版本过低,请使用 v2.3 或以上版本");
return false;
}
return true;
@@ -150,10 +144,7 @@ function validateUigf4Data(data: object): boolean {
if (!validate4(data)) {
if (!validate4.errors || validate4.errors.length === 0) return false;
const error: ErrorObject = validate4.errors[0];
showSnackbar({
text: `${error.instancePath || error.schemaPath} ${error.message}`,
color: "error",
});
showSnackbar.error(`${error.instancePath || error.schemaPath} ${error.message}`);
return false;
}
return true;

View File

@@ -41,37 +41,37 @@ export async function backUpUserData(dir: string): Promise<void> {
export async function restoreUserData(dir: string): Promise<void> {
let errNum = 0;
if (!(await exists(dir))) {
showSnackbar({ text: "备份目录不存在", color: "error" });
showSnackbar.error("备份目录不存在");
return;
}
const restoreAchi = await TSUserAchi.restoreUiaf(dir);
if (!restoreAchi) {
showSnackbar({ text: `成就数据恢复失败`, color: "error" });
showSnackbar.error("成就数据恢复失败");
errNum++;
}
const restoreAccount = await TSUserAccount.account.restore(dir);
if (!restoreAccount) {
showSnackbar({ text: "Cookie 数据恢复失败", color: "error" });
showSnackbar.error("Cookie 数据恢复失败");
errNum++;
}
const restoreAbyss = await TSUserAbyss.restoreAbyss(dir);
if (!restoreAbyss) {
showSnackbar({ text: "深渊数据恢复失败", color: "error" });
showSnackbar.error("深渊数据恢复失败");
errNum++;
}
const restoreCombat = await TSUserCombat.restoreCombat(dir);
if (!restoreCombat) {
showSnackbar({ text: "真境剧诗数据恢复失败", color: "error" });
showSnackbar.error("真境剧诗数据恢复失败");
errNum++;
}
const restoreGacha = await TSUserGacha.restoreUigf(dir);
if (!restoreGacha) {
showSnackbar({ text: "祈愿数据恢复失败", color: "error" });
showSnackbar.error("祈愿数据恢复失败");
errNum++;
}
if (errNum === 0) {
showSnackbar({ text: "数据恢复成功", color: "success" });
} else {
showSnackbar({ text: `数据恢复失败,失败数量:${errNum}`, color: "error" });
if (errNum !== 0) {
showSnackbar.error(`数据恢复失败,失败数:${errNum}`);
return;
}
showSnackbar.success("数据恢复成功");
}

View File

@@ -148,10 +148,7 @@ export async function parseLink(
text: "取消则使用外部浏览器打开",
});
if (openCheck === undefined) {
showSnackbar({
text: "已取消打开",
color: "warn",
});
showSnackbar.cancel("已取消打开");
return true;
}
if (!openCheck) return url.href;