mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import {
|
|
createCreateMainWindowHandler,
|
|
createCreateModalWindowHandler,
|
|
createCreateOverlayWindowHandler,
|
|
} from './overlay-window-factory';
|
|
import {
|
|
createBuildCreateMainWindowMainDepsHandler,
|
|
createBuildCreateModalWindowMainDepsHandler,
|
|
createBuildCreateOverlayWindowMainDepsHandler,
|
|
} from './overlay-window-factory-main-deps';
|
|
|
|
type CreateOverlayWindowMainDeps<TWindow> = Parameters<
|
|
typeof createBuildCreateOverlayWindowMainDepsHandler<TWindow>
|
|
>[0];
|
|
|
|
export function createOverlayWindowRuntimeHandlers<TWindow>(deps: {
|
|
createOverlayWindowDeps: CreateOverlayWindowMainDeps<TWindow>;
|
|
setMainWindow: (window: TWindow | null) => void;
|
|
setModalWindow: (window: TWindow | null) => void;
|
|
}) {
|
|
const createOverlayWindow = createCreateOverlayWindowHandler<TWindow>(
|
|
createBuildCreateOverlayWindowMainDepsHandler<TWindow>(deps.createOverlayWindowDeps)(),
|
|
);
|
|
const createMainWindow = createCreateMainWindowHandler<TWindow>(
|
|
createBuildCreateMainWindowMainDepsHandler<TWindow>({
|
|
createOverlayWindow: (kind) => createOverlayWindow(kind),
|
|
setMainWindow: (window) => deps.setMainWindow(window),
|
|
})(),
|
|
);
|
|
const createModalWindow = createCreateModalWindowHandler<TWindow>(
|
|
createBuildCreateModalWindowMainDepsHandler<TWindow>({
|
|
createOverlayWindow: (kind) => createOverlayWindow(kind),
|
|
setModalWindow: (window) => deps.setModalWindow(window),
|
|
})(),
|
|
);
|
|
|
|
return {
|
|
createOverlayWindow,
|
|
createMainWindow,
|
|
createModalWindow,
|
|
};
|
|
}
|