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

- Переименование категории прямо из карточки услуги. На активной категории появляется иконка ✎ или двойной клик — название превращается в поле ввода, Enter сохраняет. Не нужно уходить на отдельную страницу менеджера и терять ввод услуги.

Улучшения
Длительность услуги в часах на сайте и в каталоге. «1 час», «1,5 часа», «2 часа», «1 ч 15 мин» — там, где клиент читает карточку (главная, каталог, страница услуги). В админке для расчёта расписания длительность остаётся в минутах.
Описание и фото — на первом экране карточки услуги. Раньше эти поля жили под раскрывашкой «Дополнительно», партнёр заполнял их в одной из десяти услуг. Теперь сразу после названия — заполняется чаще, карточка на сайте выглядит богаче.
На мобильном — bottom-sheet с крупными кнопками. Кнопки 44 пикселя (минимум по доступности), горизонтальный скролл подсвечивается градиентом справа — сразу видно что список продолжается. Новая категория после «+ Новая» появляется в начале списка, не уезжает в конец.

Карточка edit на мобильном не открывает клавиатуру. Раньше при редактировании услуги мобильный сразу ставил курсор на одно из полей и показывал клавиатуру. Теперь модалка открывается спокойно — клавиатура поднимается только когда вы сами тапаете на поле.
«Дополнительно» автоматически раскрывается при редактировании, если внутри уже есть данные (буфер времени, отметка «На главной», услуга деактивирована). Не нужно вспоминать, что вы туда заходили.
Исправления
Услуга больше не теряет свою позицию после редактирования. Раньше при сохранении длительности или цены услуга могла «улететь» в конец категории на сайте — это починили на уровне сортировки.
При переименовании категории — позиция в списке сохраняется. Раньше переименованная категория могла перепрыгнуть в конец ряда, теперь остаётся на своём месте.
Удаление услуги называет её имя. «Удалить «Маникюр аппаратный»? Это действие нельзя отменить» — вместо общего «Это действие нельзя отменить».
Position editor для фото скрыт. Перетаскивание фото для выбора видимой области работало непредсказуемо в разных контекстах (карточка на сайте, форма записи). Пока убрали — загружайте фото уже в нужной обрезке. Вернём, когда переделаем под per-context positioning.
Под капотом
Стабильная сортировка услуг — добавили вторичный ключ к запросам публичных страниц, чтобы изменения в базе не сдвигали порядок строк. Маленькое изменение в коде, заметное в каждой смене длительности.