13g10n
Напишите мне
На главную

Грядущее обновление [email protected] — модуль меню

Aiogram Forms1 минута
Also available in English

В последний день августа позволю себе сделать ленивый тизер на грядущее обновление aiogram-forms. Встречайте новый модуль — меню!

Я всё ещё веду активную разработку, поэтому некоторые API могут меняться; однако общая идея останется такой.

Максимально коротко и просто: импортируем, создаём нужный нам подкласс, регистрируем в диспатчере.

from aiogram_forms.menus import Menu, MenuItem, actions


@dispatcher.register('main')
class MainMenu(Menu):
    order_status = MenuItem('📫 Check order status', action=actions.ShowForm('order-status'))
    settings = MenuItem('🔧 Settings', action=actions.ShowMenu('settings'))
    about = MenuItem('ℹ️ About', action=actions.Custom(send_about_message))

    @classmethod
    async def title(cls) -> str:
        return '🏠 Home'

    
@dispatcher.register('settings')
class SettingsMenu(Menu):
    ...


@dispatcher.register('order-status')
class CheckOrderStatusForm(Form):
    ...


@dp.message(Command('menu'))
async def command_menu_handler(message: types.Message, manager: Manager) -> None:
    await manager.show('main')

Как я и указывал в роудмапе, модуль меню станет доступен с версии 1.2.0, которая предположительно выйдет в сентябре. Помимо нового модуля обновления включают оптимизации, фиксы некоторых багов и переработку менеджера.

Python
Telegram
aiogram
aiogram-forms