Перейти к основному содержимому

Палатка фестиваля

Hardcoded блок, в котором юзер может сообщить сведения о палатке.

  • Является ли владельцем или просто проживающим в палатке
  • Если владелец - тип палатки
  • Если владелец - количество проживающих в палатке
  • Если проживающий - UserID (в базе данных АИС Таврида) владельца палатки

Ключи

// Свитчер (в АИС радио-кнопка, необязательное поле)
isTentOwner

// Тип палатки (в АИС строка, необязательное)
tentType

// Кол-во проживающих (в АИС целое число, необязательное)
tentPopulation

// user.ID (в АИС строка, необязательное)
tentOwnerID

Как работает блок

Свитчер Владелец / Проживающий

Если юзер не выбрал - ошибка, нельзя будет перейти на след. шаг.

Настройки свитчера

Если юзер выбрал "Владелец"

Появляется селект с выбором типа палатки.

Опции берутся из настроек поля "Выбор типа палатки" в CMS.

  • Значение в АИС - как бы ID опции, то что приходит на бек и видно модераторам
  • Текст - отображение на фронте
  • Лимит - понадобится ниже

Настройки полей Тип и Кол-во проживающих

Если юзер выбрал тип - появляется поле для числа проживающих

  • Максимальное значение берется из лимита выбранной опции
  • Серая подсказка внизу инпута всегда пишет "от 1 до {limit} включительно"
  • Если юзер напишет число, превышающее лимит, под подсказкой выведется еще и стандартная красная ошибка с указанием лимита (вывод ошибок происходит только после нажатия кнопок "Продолжить" или "Подать заявку")

Если юзер выбрал "Проживающий"

Появляется поле с вводом userID

Разрешает вводить только цифры. Подразумевается, что люди будут вставлять туда пересланный им ID


Прочее

При переключении "Владелец" / "Проживающий" зависимые от свитчера инпуты остаются заполеннными

Но на бек при сохранении черновика или отправке заявки сохранится лишь то, что выбрано, то есть:

  • Выбрали "Владелец", заполнили тип и кол-во проживающих, потом выбрали "Проживающий", заполнили userID
  • При переключении туда-сюда все поля будут заполнены
  • Сохраняем черновик, когда выбран "Проживающий"
  • Тогда на бек отправится, например:
{
"isTentOwner": false,
"tentType": null,
"tentPopulation": null,
"tentOnwerID": "123123123"
}

И на фронте поля владельца тоже очистятся.