From 8dae3a8fc99f68bfa270132b940ace1727fd4bc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B5=D0=BD=D0=B8=D1=81=20=D0=9A=D1=80=D0=B8=D0=B2?= =?UTF-8?q?=D0=BE=D1=87=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Tue, 21 Jul 2026 02:05:11 +0700 Subject: [PATCH] feat: add instruct_back_to_main_handler for return to main menu --- instruct/handlers.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/instruct/handlers.py b/instruct/handlers.py index db8a5d5..8a8f14c 100644 --- a/instruct/handlers.py +++ b/instruct/handlers.py @@ -12,6 +12,8 @@ from utils.texts import ( instruct_email_text, EMOJI_DIGITS, ) +from main import WELCOME_TEXT +from utils.menu import MENU_TEXT INSTRUCT_MAIN_MENU_TEXT = instruct_main_menu_text @@ -86,6 +88,23 @@ async def instruct_tc_handler(msg: Message): await msg.answer(instruct_tc_text(), parse_mode="html") instruct_logger.info(f"User {user_id} selected TrueConf instructions") +@router.message() +async def instruct_back_to_main_handler(msg: Message): + """Обработчик возврата в главное меню.""" + user_id = msg.from_user.id + + if get_state(user_id) != "INSTRUCT_MODE": + return + + # Очистка состояния + clear_state(user_id) + + # Убираем обработанность, чтобы сообщение не дублировалось + setattr(msg, "handled", True) + + await msg.answer(MENU_TEXT, parse_mode="html") + instruct_logger.info(f"User {user_id} returned to main menu") + @router.message() async def instruct_email_handler(msg: Message): """Обработчик выбора: Почта на мобильном устройстве."""