v2026.05.12.service-modal

Модалка услуги — современнее, понятнее, предсказуемее

Модалка добавления и редактирования услуги — одна из самых частых операций партнёра в админке: 10–20 раз в первый день онбординга, регулярно потом. До этого обновления она накапливала технический долг: предоплата и фото были спрятаны под раскрывашкой «Дополнительно», кнопка «Бесплатно» и «Диапазон цен» были разными контролами для одного понятия, на мобильном кнопки не дотягивали до 44 пикселей. Мы переработали её целиком, ориентируясь на современные паттерны (Stripe, Square, Fresha, Shopify). Ниже — что именно поменялось.

Что нового

  • Единый выбор типа стоимости. В модалке услуги три сегмента: «Фикс / Диапазон / Бесплатно». Один контрол вместо чекбокса «Бесплатно» и отдельной кнопки «Диапазон цен» — взаимоисключение очевидно, ошибиться невозможно. Введённое значение сохраняется при переключении между режимами.
Модалка услуги: единый сегментированный выбор «Фикс / Диапазон / Бесплатно»
  • Переименование категории прямо из карточки услуги. На активной категории появляется иконка ✎ или двойной клик — название превращается в поле ввода, Enter сохраняет. Не нужно уходить на отдельную страницу менеджера и терять ввод услуги.
Переименование категории прямо в модалке услуги — клик по карандашу

Улучшения

  • Длительность услуги в часах на сайте и в каталоге. «1 час», «1,5 часа», «2 часа», «1 ч 15 мин» — там, где клиент читает карточку (главная, каталог, страница услуги). В админке для расчёта расписания длительность остаётся в минутах.

  • Описание и фото — на первом экране карточки услуги. Раньше эти поля жили под раскрывашкой «Дополнительно», партнёр заполнял их в одной из десяти услуг. Теперь сразу после названия — заполняется чаще, карточка на сайте выглядит богаче.

  • На мобильном — bottom-sheet с крупными кнопками. Кнопки 44 пикселя (минимум по доступности), горизонтальный скролл подсвечивается градиентом справа — сразу видно что список продолжается. Новая категория после «+ Новая» появляется в начале списка, не уезжает в конец.

Мобильная модалка услуги: bottom-sheet, сегменты, градиент скролла
  • Карточка edit на мобильном не открывает клавиатуру. Раньше при редактировании услуги мобильный сразу ставил курсор на одно из полей и показывал клавиатуру. Теперь модалка открывается спокойно — клавиатура поднимается только когда вы сами тапаете на поле.

  • «Дополнительно» автоматически раскрывается при редактировании, если внутри уже есть данные (буфер времени, отметка «На главной», услуга деактивирована). Не нужно вспоминать, что вы туда заходили.

Исправления

  • Услуга больше не теряет свою позицию после редактирования. Раньше при сохранении длительности или цены услуга могла «улететь» в конец категории на сайте — это починили на уровне сортировки.

  • При переименовании категории — позиция в списке сохраняется. Раньше переименованная категория могла перепрыгнуть в конец ряда, теперь остаётся на своём месте.

  • Удаление услуги называет её имя. «Удалить «Маникюр аппаратный»? Это действие нельзя отменить» — вместо общего «Это действие нельзя отменить».

  • Position editor для фото скрыт. Перетаскивание фото для выбора видимой области работало непредсказуемо в разных контекстах (карточка на сайте, форма записи). Пока убрали — загружайте фото уже в нужной обрезке. Вернём, когда переделаем под per-context positioning.

Под капотом

Стабильная сортировка услуг — добавили вторичный ключ к запросам публичных страниц, чтобы изменения в базе не сдвигали порядок строк. Маленькое изменение в коде, заметное в каждой смене длительности.