armcord/src/settings/main.ts

47 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-02-26 21:26:16 +00:00
import { BrowserWindow, shell, ipcMain } from "electron";
import * as storage from "electron-json-storage";
import {getConfigUnsafe, saveSettings} from "../utils";
2022-01-30 19:48:32 +00:00
import path from "path";
2022-02-26 21:26:16 +00:00
var settings:any;
var isAlreadyCreated:boolean = false;
storage.get("settings", function (error, data: any) {
if (error) throw error;
console.log(data);
settings = data;
});
var settingsWindow:BrowserWindow;
2022-01-30 19:48:32 +00:00
export function createSettingsWindow() {
2022-02-26 21:26:16 +00:00
if (isAlreadyCreated) {
settingsWindow.show();
} else {
2022-01-30 19:48:32 +00:00
settingsWindow = new BrowserWindow({
width: 500,
2022-02-26 21:26:16 +00:00
height: 500,
2022-01-30 19:48:32 +00:00
title: "ArmCord Settings",
darkTheme: true,
2022-02-26 21:26:16 +00:00
frame: true,
2022-01-30 19:48:32 +00:00
autoHideMenuBar: true,
webPreferences: {
2022-02-26 21:26:16 +00:00
preload: path.join(__dirname, "preload.js"),
2022-01-30 19:48:32 +00:00
},
});
2022-02-26 21:26:16 +00:00
ipcMain.on("saveSettings", (event, ...args) => {
//@ts-ignore
saveSettings(...args);
});
ipcMain.handle("getSetting", (event, toGet: string) => {
return getConfigUnsafe(toGet);
});
2022-01-30 19:48:32 +00:00
settingsWindow.webContents.setWindowOpenHandler(({ url }) => {
shell.openExternal(url);
return { action: "deny" };
});
2022-02-26 21:26:16 +00:00
settingsWindow.loadURL(`file://${__dirname}/settings.html`);
settingsWindow.on("close", async (e) => {
e.preventDefault()
settingsWindow.hide()
});
isAlreadyCreated = true;
}
2022-01-30 19:48:32 +00:00
}