I created an application which display a survey wizard to the user. When the user launch the /start command, I call the AddProject
:
const Telegraf = require('telegraf');
const bot = new Telegraf(process.env.BOT_TOKEN);
const session = require('telegraf/session');
bot.use(session());
const main = new TelegrafInlineMenu("Welcome.");
main.setCommand('start');
main.simpleButton('Start Survey', 'START_SURVEY', {
doFunc: async ctx => surveyController.AddProject(ctx, bot)
});
essentially the code above create a menu that display the label Welcome and a button to start the survey. When the user click on the button, the method AddProject is called from the surveyController:
const Composer = require('telegraf/composer');
const stepHandler = new Composer();
const Stage = require('telegraf/stage');
const WizardScene = require('telegraf/scenes/wizard');
const userController = require('../controllers/user.controller');
module.exports = {
AddProject: async function (ctx, bot) {
const superWizard = new WizardScene('super-wizard',
(ctx) => {
ctx.reply('Step 1', Markup.inlineKeyboard([
Markup.urlButton('❤️', 'http://telegraf.js.org'),
Markup.callbackButton('➡️ Next', 'next'),
]).extra());
return ctx.wizard.next();
},
(ctx) => {
ctx.reply('Step 2');
return ctx.wizard.next();
},
(ctx) => {
ctx.reply('Done');
return ctx.wizard.leave();
},
);
const stage = new Stage([superWizard]);
bot.use(stage.middleware());
Stage.enter('super-wizard');
},
};
the method AddProject is firing correctly, but the wizard is not displayed, what I did wrong?
js snipped
would help troubleshoot this question, plus could you point me to the docs pages relative to this functionalities inside telegraf.js.org/#/?id=telegraf – Malarkey