"""Вспомогательные функции для создания клавиатур""" from aiogram.types import ReplyKeyboardMarkup, KeyboardButton def get_main_reply_keyboard(is_admin: bool = False, is_registered: bool = False) -> ReplyKeyboardMarkup: """ Получить главную обычную клавиатуру с командами Args: is_admin: Является ли пользователь администратором is_registered: Зарегистрирован ли пользователь Returns: ReplyKeyboardMarkup с кнопками команд """ keyboard = [] # Первая строка - основные команды row1 = [ KeyboardButton(text="💬 Чат"), KeyboardButton(text="❓ Справка") ] keyboard.append(row1) # Вторая строка - дополнительные команды row2 = [] if not is_admin and not is_registered: row2.append(KeyboardButton(text="📝 Регистрация")) if is_registered or is_admin: row2.append(KeyboardButton(text="🔑 Мой код")) row2.append(KeyboardButton(text="📱 Мои логины")) if row2: keyboard.append(row2) # Третья строка - главная row3 = [KeyboardButton(text="🏠 Главная")] # Админские команды if is_admin: row3.append(KeyboardButton(text="⚙️ Админ панель")) keyboard.append(row3) return ReplyKeyboardMarkup( keyboard=keyboard, resize_keyboard=True, input_field_placeholder="Выберите действие..." ) def get_chat_reply_keyboard() -> ReplyKeyboardMarkup: """ Получить клавиатуру для режима чата Returns: ReplyKeyboardMarkup с кнопками управления чатом """ keyboard = [ [KeyboardButton(text="🚪 Выйти из чата")], [KeyboardButton(text="🏠 Главная")] ] return ReplyKeyboardMarkup( keyboard=keyboard, resize_keyboard=True, input_field_placeholder="Напишите сообщение или выберите действие..." ) def remove_keyboard() -> ReplyKeyboardMarkup: """ Убрать обычную клавиатуру Returns: ReplyKeyboardMarkup с параметром remove_keyboard=True """ from aiogram.types import ReplyKeyboardRemove return ReplyKeyboardRemove()