mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-30 06:12:06 -07:00
refactor: consolidate 3 near-identical setup window factories
Extract shared createSetupWindowHandler with a config parameter. Public API unchanged.
This commit is contained in:
@@ -1,16 +1,26 @@
|
|||||||
export function createCreateFirstRunSetupWindowHandler<TWindow>(deps: {
|
interface SetupWindowConfig {
|
||||||
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
width: number;
|
||||||
}) {
|
height: number;
|
||||||
|
title: string;
|
||||||
|
resizable?: boolean;
|
||||||
|
minimizable?: boolean;
|
||||||
|
maximizable?: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
|
function createSetupWindowHandler<TWindow>(
|
||||||
|
deps: { createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow },
|
||||||
|
config: SetupWindowConfig,
|
||||||
|
) {
|
||||||
return (): TWindow =>
|
return (): TWindow =>
|
||||||
deps.createBrowserWindow({
|
deps.createBrowserWindow({
|
||||||
width: 480,
|
width: config.width,
|
||||||
height: 460,
|
height: config.height,
|
||||||
title: 'SubMiner Setup',
|
title: config.title,
|
||||||
show: true,
|
show: true,
|
||||||
autoHideMenuBar: true,
|
autoHideMenuBar: true,
|
||||||
resizable: false,
|
resizable: config.resizable,
|
||||||
minimizable: false,
|
minimizable: config.minimizable,
|
||||||
maximizable: false,
|
maximizable: config.maximizable,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
nodeIntegration: false,
|
nodeIntegration: false,
|
||||||
contextIsolation: true,
|
contextIsolation: true,
|
||||||
@@ -18,36 +28,35 @@ export function createCreateFirstRunSetupWindowHandler<TWindow>(deps: {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createCreateFirstRunSetupWindowHandler<TWindow>(deps: {
|
||||||
|
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
||||||
|
}) {
|
||||||
|
return createSetupWindowHandler(deps, {
|
||||||
|
width: 480,
|
||||||
|
height: 460,
|
||||||
|
title: 'SubMiner Setup',
|
||||||
|
resizable: false,
|
||||||
|
minimizable: false,
|
||||||
|
maximizable: false,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
export function createCreateJellyfinSetupWindowHandler<TWindow>(deps: {
|
export function createCreateJellyfinSetupWindowHandler<TWindow>(deps: {
|
||||||
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
||||||
}) {
|
}) {
|
||||||
return (): TWindow =>
|
return createSetupWindowHandler(deps, {
|
||||||
deps.createBrowserWindow({
|
|
||||||
width: 520,
|
width: 520,
|
||||||
height: 560,
|
height: 560,
|
||||||
title: 'Jellyfin Setup',
|
title: 'Jellyfin Setup',
|
||||||
show: true,
|
|
||||||
autoHideMenuBar: true,
|
|
||||||
webPreferences: {
|
|
||||||
nodeIntegration: false,
|
|
||||||
contextIsolation: true,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
export function createCreateAnilistSetupWindowHandler<TWindow>(deps: {
|
export function createCreateAnilistSetupWindowHandler<TWindow>(deps: {
|
||||||
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
createBrowserWindow: (options: Electron.BrowserWindowConstructorOptions) => TWindow;
|
||||||
}) {
|
}) {
|
||||||
return (): TWindow =>
|
return createSetupWindowHandler(deps, {
|
||||||
deps.createBrowserWindow({
|
|
||||||
width: 1000,
|
width: 1000,
|
||||||
height: 760,
|
height: 760,
|
||||||
title: 'Anilist Setup',
|
title: 'Anilist Setup',
|
||||||
show: true,
|
|
||||||
autoHideMenuBar: true,
|
|
||||||
webPreferences: {
|
|
||||||
nodeIntegration: false,
|
|
||||||
contextIsolation: true,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user