Nestgram
  • ⭐About Nestgram
  • 📄Guide
  • 📰News
  • 🔼Handling updates
    • Handling commands
    • Handling text messages
    • Handling other updates
    • Entities: url, email and other
    • Other arguments in handler
    • Handling media files and download it
  • 🪶Nestgram Features
    • Services
    • Middlewares and Params
    • Sending messages correctly
    • Answer class
    • Scopes
    • States
    • Views
  • 💬Messages
    • Sending a photo, video and other media
    • Sending a media group
    • Send location (live) or venue
    • Send contact
    • Send poll
    • Send dice
    • Edit/delete messages
    • Copy or Forward a message
  • ⌨️Keyboards
    • Keyboard types, building keyboard
    • Handle underTheMessage keyboard button click by Alert or Toast
    • Keyboard layouts
  • ⚙️Config
    • CLI
    • Webhooks and run config
    • Api class
    • Modules
      • Mongo module
    • Controller Helper class
  • 🤖API Reference
    • Set chat action
    • Save user profile photo
    • Ban, unban user or chat
    • Restrict or Promote user
    • Set chat permissions
    • Set chat admin custom title
    • Chat invite links
    • Join requests
    • Update chat info, photo, title, description and more
    • Pin or unpin messages
    • Get chat info, leave chat
    • Check user subscription
    • Chat sticker set
    • My commands
    • My default admin rights
    • Menu button
Powered by GitBook
On this page
  • What are views?
  • Create view
  • Call view
  1. Nestgram Features

Views

You can enter view

PreviousStatesNextSending a photo, video and other media

Last updated 2 years ago

What are views?

Views are reusable handlers. You can create a view and call it at any time. View can send messages using the Answer class. For example, you can create your bot's menu using views

Create view

View is a simple function that has a name in format NameView. To create view, just export function

View function takes argument: class

View function must have a name in NameView format

menu.view.ts
export async function MenuView(answer: Answer): Promise<void> {
  await answer.send('Menu');
}

Call view

At first, you need to use view, import it to views field in your module file

app.module.ts
import { Answer, Module } from 'nestgram';
import { AppService } from './app.service';
import { AppController } from './app.controller';
import { MenuView } from './menu.view.ts';

@Module({
  controllers: [AppController],
  services: [AppService],
  views: [MenuView],
})
export class AppModule {}

Then you can call it using .view answer method

.view answer method takes argument: view id, e.g. for MenuView class it will be 'menu'. If you try to enter a view with haven't id, you will get an error

app.controller.ts
import { Answer, Controller, GetAnswer, OnCommand } from 'nestgram';
import { AppService } from './app.service';

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

  @OnCommand('start')
  async start(@GetAnswer() answer: Answer) {
    await answer.view('menu');
  }
}
🪶
Answer