diff --git a/server/src/browser-management/inputHandlers.ts b/server/src/browser-management/inputHandlers.ts index f1faa628..49a3bb11 100644 --- a/server/src/browser-management/inputHandlers.ts +++ b/server/src/browser-management/inputHandlers.ts @@ -13,3 +13,34 @@ import { Page } from "playwright"; import { throttle } from "../../../src/helpers/inputHelpers"; import { CustomActions } from "../../../src/shared/types"; + +const handleWrapper = async ( + handleCallback: ( + generator: WorkflowGenerator, + page: Page, + args?: any + ) => Promise, + args?: any +) => { + const id = browserPool.getActiveBrowserId(); + if (id) { + const activeBrowser = browserPool.getRemoteBrowser(id); + if (activeBrowser?.interpreter.interpretationInProgress() && !activeBrowser.interpreter.interpretationIsPaused) { + logger.log('debug', `Ignoring input, while interpretation is in progress`); + return; + } + const currentPage = activeBrowser?.getCurrentPage(); + if (currentPage && activeBrowser) { + if (args) { + await handleCallback(activeBrowser.generator, currentPage, args); + } else { + await handleCallback(activeBrowser.generator, currentPage); + } + } else { + logger.log('warn', `No active page for browser ${id}`); + } + } else { + logger.log('warn', `No active browser for id ${id}`); + } +} +