Skip to content

Commit 9d273a6

Browse files
authored
Fix/464 (#469)
* refactor: update MainSettings accessors for improved encapsulation and consistency * fix: #464, fix incorrect event name for opening manga in same window
1 parent a7c8c94 commit 9d273a6

File tree

5 files changed

+16
-17
lines changed

5 files changed

+16
-17
lines changed

src/electron/ipc/update.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ import { WindowManager } from "../util/window";
55
import { ipc } from "./utils";
66

77
export const registerUpdateHandlers = (): void => {
8-
if (MainSettings.getSettings().checkForUpdates) {
8+
if (MainSettings.settings.checkForUpdates) {
99
const mainWindow = WindowManager.getAllWindows()[0];
1010
if (mainWindow) {
1111
const check = () => {
12-
const settings = MainSettings.getSettings();
12+
const settings = MainSettings.settings;
1313
checkForUpdate(mainWindow.id, settings.channel, settings.skipPatch, false, settings.autoDownload);
1414
};
1515
check();
@@ -19,6 +19,6 @@ export const registerUpdateHandlers = (): void => {
1919

2020
ipc.on("update:check:manual", (e, { promptAfterCheck = true }) => {
2121
const windowId = getWindowFromWebContents(e.sender).id;
22-
checkForUpdate(windowId, MainSettings.getSettings().channel, false, promptAfterCheck, false);
22+
checkForUpdate(windowId, MainSettings.settings.channel, false, promptAfterCheck, false);
2323
});
2424
};

src/electron/main.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@ if (app.isPackaged) {
4242
app.on("second-instance", (_event, commandLine) => {
4343
if (commandLine.length >= 3) {
4444
// for file explorer option
45-
if (MainSettings.getSettings().openInExistingWindow) {
45+
if (MainSettings.settings.openInExistingWindow) {
4646
const window = BrowserWindow.getAllWindows().at(-1);
4747
if (window) {
48-
window.webContents.send("loadMangaFromLink", { link: commandLine[2] });
48+
window.webContents.send("reader:loadLink", { link: commandLine[2] });
4949
window.show();
5050
} else {
5151
log.error("Could not get the window.");

src/electron/util/mainSettings.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ const oldTempPath = path.join(app.getPath("userData"), "TEMP_PATH");
2828
const oldOpenInExistingWindowPath = path.join(app.getPath("userData"), "OPEN_IN_EXISTING_WINDOW");
2929

3030
export class MainSettings {
31-
private static settings: MainSettingsType;
31+
private static _settings: MainSettingsType;
3232
private static readonly settingsPath = path.join(app.getPath("userData"), "main-settings.json");
3333

3434
private static makeMainSettingsJson(): MainSettingsType {
@@ -64,19 +64,19 @@ export class MainSettings {
6464
}
6565
}
6666

67-
public static getSettings(): MainSettingsType {
68-
return { ...MainSettings.settings };
67+
public static get settings(): MainSettingsType {
68+
return { ...MainSettings._settings };
6969
}
7070

7171
public static async updateSettings(newSettings: Partial<MainSettingsType>): Promise<void> {
72-
MainSettings.settings = mainSettingsSchema.parse({ ...MainSettings.settings, ...newSettings });
73-
await fs.promises.writeFile(MainSettings.settingsPath, JSON.stringify(MainSettings.settings, null, 2));
74-
MainSettings.applySettings(MainSettings.settings);
72+
MainSettings._settings = mainSettingsSchema.parse({ ...MainSettings._settings, ...newSettings });
73+
await fs.promises.writeFile(MainSettings.settingsPath, JSON.stringify(MainSettings._settings, null, 2));
74+
MainSettings.applySettings(MainSettings._settings);
7575
}
7676

7777
public static initialize(): void {
78-
MainSettings.settings = MainSettings.parseMainSettings();
79-
MainSettings.applySettings(MainSettings.settings);
78+
MainSettings._settings = MainSettings.parseMainSettings();
79+
MainSettings.applySettings(MainSettings._settings);
8080
MainSettings.registerIpcHandlers();
8181
}
8282

@@ -111,12 +111,12 @@ export class MainSettings {
111111
}
112112

113113
private static registerIpcHandlers(): void {
114-
ipc.handle("mainSettings:get", () => MainSettings.getSettings());
114+
ipc.handle("mainSettings:get", () => MainSettings.settings);
115115
ipc.handle("mainSettings:update", async (_, newSettings: Partial<MainSettingsType>) => {
116116
await MainSettings.updateSettings(newSettings);
117117
const windows = WindowManager.getAllWindows();
118118
windows.forEach((window) => {
119-
ipc.send(window.webContents, "mainSettings:sync", MainSettings.getSettings());
119+
ipc.send(window.webContents, "mainSettings:sync", MainSettings.settings);
120120
});
121121
// return this.getSettings();
122122
});

src/electron/util/window.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export class WindowManager {
127127
const closeEvent = async (e: Electron.Event) => {
128128
e.preventDefault();
129129
let res = 1;
130-
if (MainSettings.getSettings().askBeforeClosing) {
130+
if (MainSettings.settings.askBeforeClosing) {
131131
res = dialog.showMessageBoxSync(window, {
132132
message: "Close this window?",
133133
title: "Yomikiru",

src/renderer/features/settings/components/FileExplorerOptions.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ const FileExplorerOptions = (): ReactElement => {
4747
onChange={handleOpenInSameWindowChange}
4848
labelAfter="Open In Existing Window"
4949
/>
50-
<code>App Restart Needed</code>
5150
</div>
5251
<ul>
5352
<li>

0 commit comments

Comments
 (0)