client/electron.js
2022-01-15 00:39:37 +01:00

76 lines
1.7 KiB
JavaScript

const electron = require("electron");
const { app, BrowserWindow } = electron;
const express = require("express");
const body = require("body-parser");
const fs = require("fs");
const backend = express();
let win = null;
backend.use(express.static(__dirname + "/dist"));
backend.use(body.json());
backend.post("/settings", (req, res) => {
var config = JSON.parse(
fs.readFileSync(__dirname + "/dist/config.json", "utf8")
);
config.backend = req.body.backend;
fs.writeFile(__dirname + "/dist/config.json", JSON.stringify(config), err => {
if (err) throw err;
});
res.end();
});
let server = backend.listen(0, () => {
console.log("LISTEN")
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) createWindow()
})
});
});
app.on("window-all-closed", () => {
if (process.platform != "darwin") {
app.quit();
}
});
function createWindow() {
console.log("CREATE WINDOW")
const WINDOW_WIDTH = 1200;
const WINDOW_HEIGHT = 680;
let bounds = electron.screen.getPrimaryDisplay().bounds;
let x = bounds.x + (bounds.width - WINDOW_WIDTH) / 2;
let y = bounds.y + (bounds.height - WINDOW_HEIGHT) / 2;
win = new BrowserWindow({
width: WINDOW_WIDTH,
height: WINDOW_HEIGHT,
x: x,
y: y,
icon: __dirname + "/dist/static/icon_48.png"
});
win.setMenuBarVisibility(false);
let session = win.webContents.session;
/* session.clearCache(() => {
let url = "http://localhost:" + server.address().port;
console.log(url)
win.loadURL(url);
});
*/
let url = "http://localhost:" + server.address().port;
console.log(url)
win.loadURL(url);
win.on("closed", () => {
win = null;
});
}