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