import { RedirectBlock, SessionState } from "indite-js/schemas"; import { sanitizeUrl } from "indite-js/lib"; import { ExecuteLogicResponse } from "../../../types"; import { parseVariables } from "indite-js/variables/parseVariables"; export const executeRedirect = ( state: SessionState, block: RedirectBlock ): ExecuteLogicResponse => { const { variables } = state.botsQueue[0].bot; if (!block.options?.url) return { outgoingEdgeId: block.outgoingEdgeId }; const formattedUrl = sanitizeUrl( parseVariables(variables)(block.options.url) ); return { clientSideActions: [ { type: "redirect", redirect: { url: formattedUrl, isNewTab: block.options.isNewTab }, }, ], outgoingEdgeId: block.outgoingEdgeId, }; };