Арт-событие и выбор места
Lumen Field
Изучите доступные места на 3D-карте или в списке с теми же возможностями, добавьте до четырёх, проверьте итоговую цену и отправьте заявку.
- Next.js
- React
- TypeScript
- Base UI
- Three.js
Задача
Объёмная карта помогает сравнить расположение мест, но бронирование должно полностью работать с клавиатуры, при включённом режиме уменьшения движения и без WebGL. Выбор и цена не должны пропадать, если место уже заняли или сервис временно недоступен.
Как устроен сценарий
-
Познакомиться с событием
До начала бронирования посетитель видит программу, площадку, даты и практическую информацию.
-
Посмотреть доступные места
На 3D-карте и в списке можно сначала открыть сведения о месте и только потом добавить его в заказ.
-
Проверить заказ
Места можно добавлять и удалять, а в итоге сразу видны их количество и общая стоимость.
-
Подтвердить бронирование
Если выбранное место уже занято или сервис временно недоступен, заказ сохраняется и отправку можно повторить после исправления ошибки.
Ключевые решения
-
Один выбор на карте и в списке
Карта, список и итог заказа используют одни данные о местах и выборе. При смене представления заказ не меняется.
-
Действия доступны вне 3D-карты
Объёмная карта показывает расположение мест, а описание, выбор, цена и отправка заявки остаются обычными элементами страницы.
Сложные состояния
-
Сначала изучить, затем выбрать
Мышью, касанием и клавиатурой можно открыть сведения о месте, не добавляя его в заказ случайно.
-
Полноценный вариант без 3D
При включённом уменьшении движения, отсутствии WebGL или работе с экранным диктором список сохраняет все сведения, выбор мест и цену.