fix: remove xo, migration to eslint

This commit is contained in:
JellyBrick
2023-08-29 17:22:38 +09:00
parent 31a7588cee
commit c722896a73
142 changed files with 17210 additions and 18409 deletions

View File

@ -1,10 +1,10 @@
const path = require("path");
const path = require('node:path');
const { app, ipcMain } = require("electron");
const electronLocalshortcut = require("electron-localshortcut");
const { app, ipcMain } = require('electron');
const electronLocalshortcut = require('electron-localshortcut');
const { setOptions } = require("../../config/plugins");
const { injectCSS } = require("../utils");
const { setOptions } = require('../../config/plugins');
const { injectCSS } = require('../utils');
let isInPiP = false;
let originalPosition;
@ -15,83 +15,93 @@ let originalMaximized;
let win;
let options;
const pipPosition = () => (options.savePosition && options["pip-position"]) || [10, 10];
const pipSize = () => (options.saveSize && options["pip-size"]) || [450, 275];
const pipPosition = () => (options.savePosition && options['pip-position']) || [10, 10];
const pipSize = () => (options.saveSize && options['pip-size']) || [450, 275];
const setLocalOptions = (_options) => {
options = { ...options, ..._options };
setOptions("picture-in-picture", _options);
}
options = { ...options, ..._options };
setOptions('picture-in-picture', _options);
};
const togglePiP = async () => {
isInPiP = !isInPiP;
setLocalOptions({ isInPiP });
isInPiP = !isInPiP;
setLocalOptions({ isInPiP });
if (isInPiP) {
originalFullScreen = win.isFullScreen();
if (originalFullScreen) win.setFullScreen(false);
originalMaximized = win.isMaximized();
if (originalMaximized) win.unmaximize();
originalPosition = win.getPosition();
originalSize = win.getSize();
if (isInPiP) {
originalFullScreen = win.isFullScreen();
if (originalFullScreen) {
win.setFullScreen(false);
}
win.webContents.on("before-input-event", blockShortcutsInPiP);
originalMaximized = win.isMaximized();
if (originalMaximized) {
win.unmaximize();
}
win.setMaximizable(false);
win.setFullScreenable(false);
originalPosition = win.getPosition();
originalSize = win.getSize();
win.webContents.send("pip-toggle", true);
win.webContents.on('before-input-event', blockShortcutsInPiP);
app.dock?.hide();
win.setVisibleOnAllWorkspaces(true, {
visibleOnFullScreen: true,
});
app.dock?.show();
if (options.alwaysOnTop) {
win.setAlwaysOnTop(true, "screen-saver", 1);
}
} else {
win.webContents.removeListener("before-input-event", blockShortcutsInPiP);
win.setMaximizable(true);
win.setFullScreenable(true);
win.setMaximizable(false);
win.setFullScreenable(false);
win.webContents.send("pip-toggle", false);
win.webContents.send('pip-toggle', true);
win.setVisibleOnAllWorkspaces(false);
win.setAlwaysOnTop(false);
app.dock?.hide();
win.setVisibleOnAllWorkspaces(true, {
visibleOnFullScreen: true,
});
app.dock?.show();
if (options.alwaysOnTop) {
win.setAlwaysOnTop(true, 'screen-saver', 1);
}
} else {
win.webContents.removeListener('before-input-event', blockShortcutsInPiP);
win.setMaximizable(true);
win.setFullScreenable(true);
if (originalFullScreen) win.setFullScreen(true);
if (originalMaximized) win.maximize();
}
win.webContents.send('pip-toggle', false);
const [x, y] = isInPiP ? pipPosition() : originalPosition;
const [w, h] = isInPiP ? pipSize() : originalSize;
win.setPosition(x, y);
win.setSize(w, h);
win.setVisibleOnAllWorkspaces(false);
win.setAlwaysOnTop(false);
win.setWindowButtonVisibility?.(!isInPiP);
if (originalFullScreen) {
win.setFullScreen(true);
}
if (originalMaximized) {
win.maximize();
}
}
const [x, y] = isInPiP ? pipPosition() : originalPosition;
const [w, h] = isInPiP ? pipSize() : originalSize;
win.setPosition(x, y);
win.setSize(w, h);
win.setWindowButtonVisibility?.(!isInPiP);
};
const blockShortcutsInPiP = (event, input) => {
const key = input.key.toLowerCase();
const key = input.key.toLowerCase();
if (key === "f") {
event.preventDefault();
} else if (key === 'escape') {
togglePiP();
event.preventDefault();
};
if (key === 'f') {
event.preventDefault();
} else if (key === 'escape') {
togglePiP();
event.preventDefault();
}
};
module.exports = (_win, _options) => {
options ??= _options;
win ??= _win;
setLocalOptions({ isInPiP });
injectCSS(win.webContents, path.join(__dirname, "style.css"));
ipcMain.on("picture-in-picture", async () => {
await togglePiP();
});
options ??= _options;
win ??= _win;
setLocalOptions({ isInPiP });
injectCSS(win.webContents, path.join(__dirname, 'style.css'));
ipcMain.on('picture-in-picture', async () => {
await togglePiP();
});
};
module.exports.setOptions = setLocalOptions;