2
0

🐛 (typebotLink) Fix nested typebot link pop

This commit is contained in:
Baptiste Arnaud
2023-09-29 11:23:04 +02:00
parent f9a14c0685
commit cd97da2d34
4 changed files with 13 additions and 9 deletions

View File

@ -119,7 +119,7 @@ export const executeGroup =
}
}
if (!nextEdgeId && state.typebotsQueue.length === 1)
if (!nextEdgeId && newSessionState.typebotsQueue.length === 1)
return { messages, newSessionState, clientSideActions, logs }
const nextGroup = await getNextGroup(newSessionState)(

View File

@ -23,7 +23,7 @@ export const getNextGroup =
isCompleted: true,
hasStarted: state.typebotsQueue[0].answers.length > 0,
})
const newSessionState = {
let newSessionState = {
...state,
typebotsQueue: [
{
@ -69,6 +69,7 @@ export const getNextGroup =
],
} satisfies SessionState
const nextGroup = await getNextGroup(newSessionState)(nextEdgeId)
newSessionState = nextGroup.newSessionState
if (!nextGroup)
return {
newSessionState,

View File

@ -7,6 +7,7 @@ export const startBotFlow = async (
state: SessionState,
startGroupId?: string
): Promise<ChatReply & { newSessionState: SessionState }> => {
let newSessionState = state
if (startGroupId) {
const group = state.typebotsQueue[0].typebot.groups.find(
(group) => group.id === startGroupId
@ -16,12 +17,13 @@ export const startBotFlow = async (
code: 'BAD_REQUEST',
message: "startGroupId doesn't exist",
})
return executeGroup(state)(group)
return executeGroup(newSessionState)(group)
}
const firstEdgeId =
state.typebotsQueue[0].typebot.groups[0].blocks[0].outgoingEdgeId
if (!firstEdgeId) return { messages: [], newSessionState: state }
const nextGroup = await getNextGroup(state)(firstEdgeId)
if (!nextGroup.group) return { messages: [], newSessionState: state }
return executeGroup(state)(nextGroup.group)
newSessionState.typebotsQueue[0].typebot.groups[0].blocks[0].outgoingEdgeId
if (!firstEdgeId) return { messages: [], newSessionState }
const nextGroup = await getNextGroup(newSessionState)(firstEdgeId)
newSessionState = nextGroup.newSessionState
if (!nextGroup.group) return { messages: [], newSessionState }
return executeGroup(newSessionState)(nextGroup.group)
}

View File

@ -88,12 +88,13 @@ export const startWhatsAppSession = async ({
},
})
const sessionState: SessionState = chatReply.newSessionState
let sessionState: SessionState = chatReply.newSessionState
// If first block is an input block, we can directly continue the bot flow
const firstEdgeId =
sessionState.typebotsQueue[0].typebot.groups[0].blocks[0].outgoingEdgeId
const nextGroup = await getNextGroup(sessionState)(firstEdgeId)
sessionState = nextGroup.newSessionState
const firstBlock = nextGroup.group?.blocks.at(0)
if (firstBlock && isInputBlock(firstBlock)) {
const resultId = sessionState.typebotsQueue[0].resultId