Динамическая группа кнопок с подсказками

Вид в Telegram

Массив

Чтобы получить такую группу кнопок, нужно получить из сервера массив:

[
    "Железногорск (Курская область)",
    "Железногорск (Красноярский край)",
    "Железногорск-Илимский"
]

Настройка компонента

Путь до массива название переменной, в которой он передался. На примере это просто last_request.

Параметр pipe нужно оставить в любом случае и не изменять.

Обработка кнопок

Задача

Допустим в состоянии есть массив array
[
    {   "id": 1,
       "name": "Кнопка 1"},
    {   "id": 2,
       "name": "Кнопка 2"}
]
Пользователю была отправлена динамическая группа кнопок с подсказками
[Кнопка 1]
[Кнопка 2]
Допустим пользователь нажал на кнопку 2 и в состояние в переменную pressedButton записалось значение “Кнопка 2”
Необходимо получить id (или любое другое поле из объекта нажатой кнопки)

Решение

Получим нужное поле элемента массива соответствующего нажатой кнопки с помощью компонента записи
Допустим запись осуществляется в переменную pressedButtonId
{{#each array}} // Обходим каждый элемент массива
{{#eq ../pressedButton this.name}} // Если текст в pressedButton и this.name совпадают  
{{this.id}} // Записываем требуемое поле
{{/eq}}{{/each}}
Шаблон для копирования
{{#each array}}{{#eq ../pressedButton this.name}}{{this.id}}{{/eq}}{{/each}}
ВАЖНО. Нельзя использовать такой шаблон если есть одинаковые названия кнопок. Так как в случае совпадения будут записаны подряд поля всех совпадений.

Для выбора другого раздела нажмите на категорию (слева).