umbot
    Preparing search index...

    Buttons Класс для управления коллекцией кнопок и их отображением на различных платформах.

    Класс предоставляет функциональность для:

    • Создания и управления коллекцией кнопок
    • Адаптации кнопок под различные платформы
    • Поддержки различных типов кнопок (интерактивные, ссылки)
    Index

    Constructors

    • Создает новый экземпляр коллекции кнопок: инициализирует пустой массив кнопок и сохраняет контекст приложения.

      Parameters

      • appContext: AppContext

        Контекст приложения. Обычно не создаётся вручную — передаётся через контроллер (this.buttons.addBtn('caption')).

      Returns Buttons

    Properties

    Массив объектов IButtonType, представляющих все кнопки в коллекции.

    IButtonType

    B_BTN: boolean = true

    Значение флага hide для интерактивной кнопки: true.

    B_LINK: boolean = false

    Значение флага hide для кнопки-ссылки (саджеста): false.

    Accessors

    Methods

    • Добавляет интерактивную кнопку в коллекцию.

      Parameters

      • title: string | null

        Текст кнопки

      • Optionalurl: string | null = ''

        URL для перехода

      • Optionalpayload: TButtonPayload = ''

        Дополнительные данные

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры

      Returns this

      Кнопка с пустым title молча игнорируется (не добавляется в коллекцию).

      // Простая кнопка
      buttons.addBtn('Нажми меня');

      // Кнопка с URL и payload
      buttons.addBtn('Перейти', 'http://localhost', { action: 'navigate' });
    • Добавляет кнопку-ссылку в коллекцию.

      Parameters

      • title: string | null

        Текст кнопки

      • Optionalurl: string = ''

        URL для перехода

      • Optionalpayload: TButtonPayload = ''

        Дополнительные данные

      • Optionaloptions: IButtonOptions = {}

        Дополнительные параметры

      Returns this

      // Простая ссылка
      buttons.addLink('Перейти на сайт', 'http://localhost');

      // Ссылка с payload
      buttons.addLink('Документация', 'http://localhost', { section: 'api' });
    • Очищает массив кнопок.

      Это именно «начать список заново», а не «убрать клавиатуру у пользователя»: пустой список кнопок платформе не отправляется. Чтобы снять уже показанную клавиатуру, используйте remove.

      Returns void

    • Возвращает JSON-представление кнопок для указанной платформы.

      Type Parameters

      • T = unknown
      • TType = string | Record<string, unknown> | null

      Parameters

      • buttonProcessing: TButtonProcessing<T | null, TType>

        Функция обработки кнопок для платформы

      Returns string | null

      JSON-строка кнопок или null если кнопок нет

    • Возвращает кнопки в формате указанной платформы.

      Метод сам не преобразует кнопки: он передаёт массив во внешнюю функцию buttonProcessing (её предоставляет адаптер платформы) и возвращает её результат.

      Type Parameters

      • T = unknown
      • TType = string | Record<string, unknown> | null

      Parameters

      • buttonProcessing: TButtonProcessing<T | null, TType>

        Функция обработки кнопок для платформы

      Returns T | null

      Результат функции обработки (формат зависит от платформы) или null

    • Просит платформу убрать ранее показанную клавиатуру.

      Актуально только для платформ, где клавиатура «прилипает» к диалогу и живёт до следующего явного изменения — Telegram (reply-клавиатура) и VK. У остальных клавиатура привязана к конкретному сообщению и исчезает сама, там вызов ничего не меняет. clear для этого не подходит: пустой список кнопок платформе не отправляется.

      Returns this

      // Диалог закончился — убираем клавиатуру
      ctx.buttons.remove();
      ctx.text = 'Спасибо, заказ оформлен!';
    • Устанавливает контекст приложения.

      Parameters

      • appContext: AppContext

        Контекст приложения

      Returns this

      Текущий экземпляр для цепочки вызовов