Skip to content

Commit f5a74e4

Browse files
Merge: origin/main -> add/browser-config
2 parents 994a656 + f5a6106 commit f5a74e4

File tree

3 files changed

+32
-38
lines changed

3 files changed

+32
-38
lines changed

src/background.ts

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,33 @@ app.once("will-finish-launching", () => {
964964
});
965965

966966
app.on("ready", async () => {
967-
await configManager.initialize();
967+
await configManager.initialize().catch(async (e) => {
968+
log.error(e);
969+
await dialog
970+
.showMessageBox({
971+
type: "error",
972+
title: "設定ファイルの読み込みエラー",
973+
message: `設定ファイルの読み込みに失敗しました。${app.getPath(
974+
"userData"
975+
)} にある config.json の名前を変えることで解決することがあります(ただし設定がすべてリセットされます)。設定ファイルがあるフォルダを開きますか?`,
976+
buttons: ["いいえ", "はい"],
977+
noLink: true,
978+
cancelId: 0,
979+
})
980+
.then(async ({ response }) => {
981+
if (response === 1) {
982+
await shell.openPath(app.getPath("userData"));
983+
// 直後にexitするとフォルダが開かないため
984+
await new Promise((resolve) => {
985+
setTimeout(resolve, 500);
986+
});
987+
}
988+
})
989+
.finally(async () => {
990+
await configManager.ensureSaved();
991+
app.exit(1);
992+
});
993+
});
968994

969995
if (isDevelopment && !isTest) {
970996
try {

src/background/electronConfig.ts

Lines changed: 4 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import { join } from "path";
22
import fs from "fs";
3-
import { app, dialog, shell } from "electron";
4-
import log from "electron-log/main";
3+
import { app } from "electron";
54
import { BaseConfigManager, Metadata } from "@/shared/ConfigManager";
65
import { ConfigType } from "@/type/preload";
76

@@ -36,39 +35,8 @@ export class ElectronConfigManager extends BaseConfigManager {
3635
let configManager: ElectronConfigManager | undefined;
3736

3837
export function getConfigManager(): ElectronConfigManager {
39-
try {
40-
if (!configManager) {
41-
configManager = new ElectronConfigManager();
42-
}
43-
return configManager;
44-
} catch (e) {
45-
log.error(e);
46-
app.whenReady().then(() => {
47-
dialog
48-
.showMessageBox({
49-
type: "error",
50-
title: "設定ファイルの読み込みエラー",
51-
message: `設定ファイルの読み込みに失敗しました。${app.getPath(
52-
"userData"
53-
)} にある config.json の名前を変えることで解決することがあります(ただし設定がすべてリセットされます)。設定ファイルがあるフォルダを開きますか?`,
54-
buttons: ["いいえ", "はい"],
55-
noLink: true,
56-
cancelId: 0,
57-
})
58-
.then(async ({ response }) => {
59-
if (response === 1) {
60-
await shell.openPath(app.getPath("userData"));
61-
// 直後にexitするとフォルダが開かないため
62-
await new Promise((resolve) => {
63-
setTimeout(resolve, 500);
64-
});
65-
}
66-
})
67-
.finally(async () => {
68-
await configManager?.ensureSaved();
69-
app.exit(1);
70-
});
71-
});
72-
throw e;
38+
if (!configManager) {
39+
configManager = new ElectronConfigManager();
7340
}
41+
return configManager;
7442
}

tests/e2e/browser/辞書ダイアログ.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ async function openDictDialog(page: Page): Promise<void> {
2121
await page.getByRole("button", { name: "設定" }).click();
2222
await page.waitForTimeout(100);
2323
await page.getByText("読み方&アクセント辞書").click();
24-
await page.waitForTimeout(100);
24+
await page.waitForTimeout(500);
2525
await expect(page.getByText("読み方&アクセント辞書")).toBeVisible();
2626
await expect(page.getByText("単語一覧")).toBeVisible();
2727
}

0 commit comments

Comments
 (0)