Выбор элемента из коллекции CMS (строка), провайдер даты волонтеров Академии
Выглядит как селект с одиночным выбором.
Опции подтягиваются из коллекции CMS.
Настройки
1. Заголовок - лейбл
2. Плейсхолдер - понятно
3. Коллекция
Обычно это коллекция Цветной аккордеон ...
Для разработчиков: подойдет любая коллекция с интерфейсом
interface CollectionItem {
id: string;
name: Record<string, string>;
}
То есть вообще абсолютно любая.
Если коллекция не придет (не опубликована или не выбрана) - страница заявки свалится в 404.
4. Элемент, при котором нужно отображать доп. задание
Если пользователь выберет этот элемент коллекции, и в заявке есть один из следующих блоков:
- [Видеовизитка волонтеров Академии и креативный видеоролик] То в этом блоке появится еще два поля. Подробнее по ссылке на блок.
Если элемент в CMS не выбран - дополнительные поля в том блоке не появятся ни при каких условиях.
5. Ключ
Ключ поля из CMS. Поле в CMS должно быть типа Строка
. Можно обязательное.
Принцип работы
Из коллекции приходит список элементов
[
{
"id": "1",
"name": {
"RU": "Яблоко",
"EN": "Apple"
}
},
{
"id": "2",
"name": {
"RU": "Апельсин",
"EN": "Orange"
}
}
]
Они отображаются в списке опций селекта, в зависимости от текущего языка. Например, текущий язык - русский. Тогда список будет
Яблоко
Апельсин
В заявке у пользователя по ключу _KEY_
сохранено некое строковое значение
Это значение ищется в опциях по текущему языку.
- Если не нашлось - в селекте ничего не выбрано.
- Нашлось - в селекте выбрано именно та опция, которая подошла.
Например, сейчас русский язык:
- У юзера в заявке было выбрано
Яблоко
. Тогда в селекте при загрузке страницы будет выбрана опция с id="1". - У юзера в заявке значение
Арбуз
. В селекте ничего не будет выбрано. - У юзера в заявке значение
Apple
. В селекте ничего не выбрано.
При отправке заявки
В поле заявки с кодом _KEY_
отправляется строка - текущая опция, и ее название в текущем языке.
Например, текущая опция, выбранная пользователем
{
"id": "2",
"name": {
"RU": "Апельсин",
"EN": "Orange"
}
}
Если текущий язык - английский, на бек отправится значение Orange