import { createCreateMainWindowHandler, createCreateModalWindowHandler, createCreateOverlayWindowHandler, } from './overlay-window-factory'; type CreateOverlayWindowDeps = Parameters< typeof createCreateOverlayWindowHandler >[0]; export function createOverlayWindowRuntimeHandlers(deps: { createOverlayWindowDeps: CreateOverlayWindowDeps; getMainWindow: () => TWindow | null; isWindowDestroyed: (window: TWindow) => boolean; setMainWindow: (window: TWindow | null) => void; setModalWindow: (window: TWindow | null) => void; }) { const createOverlayWindow = createCreateOverlayWindowHandler( deps.createOverlayWindowDeps, ); const createMainWindow = createCreateMainWindowHandler({ getMainWindow: () => deps.getMainWindow(), isWindowDestroyed: (window) => deps.isWindowDestroyed(window), createOverlayWindow: (kind) => createOverlayWindow(kind), setMainWindow: (window) => deps.setMainWindow(window), }); const createModalWindow = createCreateModalWindowHandler({ createOverlayWindow: (kind) => createOverlayWindow(kind), setModalWindow: (window) => deps.setModalWindow(window), }); return { createOverlayWindow, createMainWindow, createModalWindow, }; }