fix: fix It Just Works

Fixed an issue that caused inconsistent execution results.
This commit is contained in:
JellyBrick
2023-10-11 19:28:01 +09:00
parent 7aa970cebc
commit d7df4d7d10
6 changed files with 21 additions and 21 deletions

View File

@ -8,7 +8,7 @@ import { autoUpdater } from 'electron-updater';
import electronDebug from 'electron-debug'; import electronDebug from 'electron-debug';
import config from './config'; import config from './config';
import { setApplicationMenu } from './menu'; import { refreshMenu, setApplicationMenu } from './menu';
import { fileExists, injectCSS, injectCSSAsFile } from './plugins/utils'; import { fileExists, injectCSS, injectCSSAsFile } from './plugins/utils';
import { isTesting } from './utils/testing'; import { isTesting } from './utils/testing';
import { setUpTray } from './tray'; import { setUpTray } from './tray';
@ -470,6 +470,7 @@ app.on('ready', async () => {
mainWindow = await createMainWindow(); mainWindow = await createMainWindow();
setApplicationMenu(mainWindow); setApplicationMenu(mainWindow);
refreshMenu(mainWindow);
setUpTray(app, mainWindow); setUpTray(app, mainWindow);
setupProtocolHandler(mainWindow); setupProtocolHandler(mainWindow);

20
menu.ts
View File

@ -62,13 +62,15 @@ const pluginEnabledMenu = (plugin: string, label = '', hasSubmenu = false, refre
}, },
}); });
export const refreshMenu = (win: BrowserWindow) => {
setApplicationMenu(win);
if (inAppMenuActive) {
win.webContents.send('refreshMenu');
}
};
export const mainMenuTemplate = (win: BrowserWindow): MenuTemplate => { export const mainMenuTemplate = (win: BrowserWindow): MenuTemplate => {
const refreshMenu = () => { const innerRefreshMenu = () => refreshMenu(win);
setApplicationMenu(win);
if (inAppMenuActive) {
win.webContents.send('refreshMenu');
}
};
return [ return [
{ {
@ -84,15 +86,15 @@ export const mainMenuTemplate = (win: BrowserWindow): MenuTemplate => {
const getPluginMenu = pluginMenus[pluginName as keyof typeof pluginMenus]; const getPluginMenu = pluginMenus[pluginName as keyof typeof pluginMenus];
if (!config.plugins.isEnabled(pluginName)) { if (!config.plugins.isEnabled(pluginName)) {
return pluginEnabledMenu(pluginName, pluginLabel, true, refreshMenu); return pluginEnabledMenu(pluginName, pluginLabel, true, innerRefreshMenu);
} }
return { return {
label: pluginLabel, label: pluginLabel,
submenu: [ submenu: [
pluginEnabledMenu(pluginName, 'Enabled', true, refreshMenu), pluginEnabledMenu(pluginName, 'Enabled', true, innerRefreshMenu),
{ type: 'separator' }, { type: 'separator' },
...getPluginMenu(win, config.plugins.getOptions(pluginName), refreshMenu), ...getPluginMenu(win, config.plugins.getOptions(pluginName), innerRefreshMenu),
], ],
} satisfies Electron.MenuItemConstructorOptions; } satisfies Electron.MenuItemConstructorOptions;
} }

View File

@ -21,8 +21,6 @@
"!node_modules", "!node_modules",
"node_modules/custom-electron-prompt/**", "node_modules/custom-electron-prompt/**",
"node_modules/@cliqz/adblocker-electron-preload/**", "node_modules/@cliqz/adblocker-electron-preload/**",
"node_modules/@cliqz/adblocker-content/**",
"node_modules/@cliqz/adblocker-extended-selectors/**",
"node_modules/@ffmpeg.wasm/core-mt/**", "node_modules/@ffmpeg.wasm/core-mt/**",
"!node_modules/**/*.map", "!node_modules/**/*.map",
"!node_modules/**/*.ts" "!node_modules/**/*.ts"

View File

@ -1,4 +1,3 @@
export default () => { export default async () => {
const path = '@cliqz/adblocker-electron-preload'; // prevent require hoisting await import('@cliqz/adblocker-electron-preload');
require(path);
}; };

View File

@ -1,15 +1,15 @@
import config from './config'; import config, { shouldUseBlocklists } from './config';
import inject from './inject'; import inject from './inject';
import injectCliqzPreload from './inject-cliqz-preload'; import injectCliqzPreload from './inject-cliqz-preload';
import { blockers } from './blocker-types'; import { blockers } from './blocker-types';
export default async () => { export default async () => {
if (await config.shouldUseBlocklists()) { if (shouldUseBlocklists()) {
// Preload adblocker to inject scripts/styles // Preload adblocker to inject scripts/styles
injectCliqzPreload(); await injectCliqzPreload();
// eslint-disable-next-line @typescript-eslint/await-thenable // eslint-disable-next-line @typescript-eslint/await-thenable
} else if ((await config.get('blocker')) === blockers.InPlayer) { } else if ((config.get('blocker')) === blockers.InPlayer) {
inject(); inject();
} }
}; };

View File

@ -1,4 +1,4 @@
export default () => { export default async () => {
// See https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass#userscript // See https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass#userscript
import('simple-youtube-age-restriction-bypass'); await import('simple-youtube-age-restriction-bypass');
}; };