Handle underTheMessage keyboard button click by Alert or Toast

Handle underTheMessage keyboard button click by Alert or Toast

Handling click on underTheMessage keyboard button

If you want to handle when user clicks on underTheMessage keyboard button, you can use @OnClick decorator for method and pass button id to it.

@OnClick takes argument: button id you want to listen to the click

You can also send alert or toast using class-method: Alert and Toast

Alert/Toast class-method takes arguments:

Argument
Description
Required
1

Text of the Alert/Toast

Required

2

Optional

app.controller.ts
import { Controller, Keyboard, KeyboardTypes, MessageSend, OnCommand, OnClick, Alert, Toast } from 'nestgram';
import { AppService } from './app.service';

@Controller()
export class AppController {
  constructor(private readonly appService?: AppService) {}

  @OnCommand('start')
  async start(): Promise<MessageSend> {
    return new MessageSend(
      'underTheMessage (or inline_keyboard) keyboard example',
      new Keyboard(KeyboardTypes.underTheMessage) // keyboard type
        .btn('Button', 'buttonId')
        .btn('Button 2', 'buttonId2'), // row is created automatically
    );
  }
  
  @OnClick('buttonId')
  async buttonClick(): Promise<Alert> {
    return new Alert('Hello!');
  }
  
  @OnClick('buttonId2')
  async secondButtonClick(): Promise<Toast> {
    return new Toast('World!');
  }
}

You can also use a RegExp expression in the @OnClick decorator to handle clicks with params

Last updated