diff --git a/packages/docs/src/routes/docs/flows/index.mdx b/packages/docs/src/routes/docs/flows/index.mdx index 0c2cf0b..432def3 100644 --- a/packages/docs/src/routes/docs/flows/index.mdx +++ b/packages/docs/src/routes/docs/flows/index.mdx @@ -152,57 +152,65 @@ const flowString = addKeyword('hola') ## endFlow() -Esta funcion se utliza para finalizar un flujo con dos o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y -que el usuario pueda finalizar por él mismo el flujo. +Esta funcion se utliza para **finalizar un flujo con dos** o más addAnswer. Un ejemplo de uso sería registrar 3 datos de un usuario en 3 preguntas distinas y +que el usuario **pueda finalizar por él mismo el flujo**. Como podrás comprobar en el ejemplo siguiente, se puede vincular flowDynamic y todas sus funciones; como por ejemplo botones. ```js -const flowFormulario = addKeyword(['Hola']) +let nombre; +let apellidos; +let telefono; + +const flowFormulario = addKeyword(['Hola','⬅️ Volver al Inicio']) .addAnswer( - ['Hola!', 'Escriba su *Nombre* para generar su solicitud'], + ['Hola!','Para enviar el formulario necesito unos datos...' ,'Escriba su *Nombre*'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', // Aquí terminamos el flow si la condicion se comple + buttons:[{body:'⬅️ Volver al Inicio' }] // Y además, añadimos un botón por si necesitas derivarlo a otro flow + + + }) + nombre = ctx.body + return flowDynamic(`Encantado *${nombre}*, continuamos...`) } ) .addAnswer( ['También necesito tus dos apellidos'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', + buttons:[{body:'⬅️ Volver al Inicio' }] + + + }) + apellidos = ctx.body + return flowDynamic(`Perfecto *${nombre}*, por último...`) } ) .addAnswer( ['Dejeme su número de teléfono y le llamaré lo antes posible.'], { capture: true, buttons: [{ body: '❌ Cancelar solicitud' }] }, + async (ctx, { flowDynamic, endFlow }) => { - if (ctx.body == '❌ Cancelar solicitud') { - await flowDynamic([ - { - body: '❌ *Su solicitud de cita ha sido cancelada* ❌', - buttons: [{ body: '⬅️ Volver al Inicio' }], - }, - ]) - return endFlow() - } + if (ctx.body == '❌ Cancelar solicitud') + return endFlow({body: '❌ Su solicitud ha sido cancelada ❌', + buttons:[{body:'⬅️ Volver al Inicio' }] + }) + + + telefono = ctx.body + await delay(2000) + return flowDynamic(`Estupendo *${nombre}*! te dejo el resumen de tu formulario + \n- Nombre y apellidos: *${nombre} ${apellidos}* + \n- Telefono: *${telefono}*`) } ) + ``` ---