mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 10:31:47 +00:00
84
src/index.ts
84
src/index.ts
@ -402,55 +402,16 @@ async function createMainWindow() {
|
|||||||
|
|
||||||
removeContentSecurityPolicy();
|
removeContentSecurityPolicy();
|
||||||
|
|
||||||
win.webContents.on('dom-ready', async () => {
|
win.webContents.on('dom-ready', () => {
|
||||||
if (useInlineMenu && is.windows()) {
|
if (useInlineMenu && is.windows()) {
|
||||||
win.setTitleBarOverlay({
|
win.setTitleBarOverlay({
|
||||||
...defaultTitleBarOverlayOptions,
|
...defaultTitleBarOverlayOptions,
|
||||||
height: Math.floor(
|
height: Math.floor(
|
||||||
defaultTitleBarOverlayOptions.height! *
|
defaultTitleBarOverlayOptions.height! *
|
||||||
win.webContents.getZoomFactor(),
|
win.webContents.getZoomFactor(),
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inject index.html file as string using insertAdjacentHTML
|
|
||||||
// In dev mode, get string from process.env.VITE_DEV_SERVER_URL, else use fs.readFileSync
|
|
||||||
if (is.dev() && process.env.ELECTRON_RENDERER_URL) {
|
|
||||||
// HACK: to make vite work with electron renderer (supports hot reload)
|
|
||||||
await win.webContents.executeJavaScript(`
|
|
||||||
console.log('Loading vite from dev server');
|
|
||||||
const viteScript = document.createElement('script');
|
|
||||||
viteScript.type = 'module';
|
|
||||||
viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client';
|
|
||||||
const rendererScript = document.createElement('script');
|
|
||||||
rendererScript.type = 'module';
|
|
||||||
rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts';
|
|
||||||
document.body.appendChild(viteScript);
|
|
||||||
document.body.appendChild(rendererScript);
|
|
||||||
0
|
|
||||||
`);
|
|
||||||
} else {
|
|
||||||
const rendererPath = path.join(__dirname, '..', 'renderer');
|
|
||||||
const indexHTML = parse(
|
|
||||||
fs.readFileSync(path.join(rendererPath, 'index.html'), 'utf-8'),
|
|
||||||
);
|
|
||||||
const scriptSrc = indexHTML.querySelector('script')!;
|
|
||||||
const scriptPath = path.join(
|
|
||||||
rendererPath,
|
|
||||||
scriptSrc.getAttribute('src')!,
|
|
||||||
);
|
|
||||||
const scriptString = fs.readFileSync(scriptPath, 'utf-8');
|
|
||||||
await win.webContents.executeJavaScriptInIsolatedWorld(
|
|
||||||
0,
|
|
||||||
[
|
|
||||||
{
|
|
||||||
code: scriptString + ';0',
|
|
||||||
url: url.pathToFileURL(scriptPath).toString(),
|
|
||||||
},
|
|
||||||
],
|
|
||||||
true,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
win.webContents.loadURL(urlToLoad);
|
win.webContents.loadURL(urlToLoad);
|
||||||
@ -629,6 +590,47 @@ app.whenReady().then(async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ipcMain.handle('load-renderer-plugins', async () => {
|
||||||
|
// Inject index.html file as string using insertAdjacentHTML
|
||||||
|
// In dev mode, get string from process.env.VITE_DEV_SERVER_URL, else use fs.readFileSync
|
||||||
|
if (is.dev() && process.env.ELECTRON_RENDERER_URL) {
|
||||||
|
// HACK: to make vite work with electron renderer (supports hot reload)
|
||||||
|
await mainWindow?.webContents.executeJavaScript(`
|
||||||
|
console.log('Loading vite from dev server');
|
||||||
|
const viteScript = document.createElement('script');
|
||||||
|
viteScript.type = 'module';
|
||||||
|
viteScript.src = '${process.env.ELECTRON_RENDERER_URL}/@vite/client';
|
||||||
|
const rendererScript = document.createElement('script');
|
||||||
|
rendererScript.type = 'module';
|
||||||
|
rendererScript.src = '${process.env.ELECTRON_RENDERER_URL}/renderer.ts';
|
||||||
|
document.body.appendChild(viteScript);
|
||||||
|
document.body.appendChild(rendererScript);
|
||||||
|
0
|
||||||
|
`);
|
||||||
|
} else {
|
||||||
|
const rendererPath = path.join(__dirname, '..', 'renderer');
|
||||||
|
const indexHTML = parse(
|
||||||
|
fs.readFileSync(path.join(rendererPath, 'index.html'), 'utf-8'),
|
||||||
|
);
|
||||||
|
const scriptSrc = indexHTML.querySelector('script')!;
|
||||||
|
const scriptPath = path.join(
|
||||||
|
rendererPath,
|
||||||
|
scriptSrc.getAttribute('src')!,
|
||||||
|
);
|
||||||
|
const scriptString = fs.readFileSync(scriptPath, 'utf-8');
|
||||||
|
await mainWindow?.webContents.executeJavaScriptInIsolatedWorld(
|
||||||
|
0,
|
||||||
|
[
|
||||||
|
{
|
||||||
|
code: scriptString + ';0',
|
||||||
|
url: url.pathToFileURL(scriptPath).toString(),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
true,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
mainWindow = await createMainWindow();
|
mainWindow = await createMainWindow();
|
||||||
await setApplicationMenu(mainWindow);
|
await setApplicationMenu(mainWindow);
|
||||||
await refreshMenu(mainWindow);
|
await refreshMenu(mainWindow);
|
||||||
|
|||||||
@ -53,3 +53,5 @@ contextBridge.exposeInMainWorld(
|
|||||||
'ELECTRON_RENDERER_URL',
|
'ELECTRON_RENDERER_URL',
|
||||||
process.env.ELECTRON_RENDERER_URL,
|
process.env.ELECTRON_RENDERER_URL,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
ipcRenderer.invoke('load-renderer-plugins');
|
||||||
|
|||||||
Reference in New Issue
Block a user