Improve delivery workflows and add versioned guided tours (#1)
Reviewed-on: #1 Co-authored-by: Egor Pozharov <chedius232@gmail.com>
This commit was merged in pull request #1.
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
# Просмотр UI/UX правок
|
||||
|
||||
Ветка: `codex/ui-ux-guided-tour`.
|
||||
|
||||
## Локальный просмотр с вымышленными данными
|
||||
|
||||
Из папки `frontend`:
|
||||
|
||||
```sh
|
||||
npm run build
|
||||
npm run preview:demo
|
||||
```
|
||||
|
||||
Откройте http://127.0.0.1:4174. Демо-вход: `demo` / `demo123`.
|
||||
Это отдельный сервер с заявками в памяти; он не подключается к рабочему backend.
|
||||
Перезапуск сбрасывает демонстрационные изменения. Номера телефонов вымышленные.
|
||||
Остановить сервер: Ctrl+C. Демо-сервер не входит в production bundle.
|
||||
|
||||
## Что проверить
|
||||
|
||||
- Главная страница: быстрый переход к сегодняшним заявкам, календарь, ближайшие даты.
|
||||
- Список: соседние дни, поиск, фильтры места загрузки/статуса, сброс фильтров.
|
||||
- На телефоне дополнительные фильтры раскрываются кнопкой «Фильтры».
|
||||
- Карточки: адрес и контакты первыми, крупные действия, условия доставки.
|
||||
- Таблица: товар с загрузкой и клиент с контактами в одной ячейке.
|
||||
- Изменение статуса сохраняет представление и соседние заявки; блокируется только текущая доставка.
|
||||
- Перенос заявки сохраняет открытый день: перенесённая заявка исчезает из него, новая дата указана в подтверждении.
|
||||
- Форма: отдельные группы, прокрутка содержимого, закреплённые действия; ошибки не стирают введённые данные.
|
||||
- Escape закрывает диалог; с изменёнными данными запрашивается подтверждение. Во время сохранения закрытие и повторная отправка блокируются.
|
||||
|
||||
## Обучение
|
||||
|
||||
Два коротких тура: план доставок (4 шага), список (до 6 шагов).
|
||||
Тур автоматически появляется при первом открытии соответствующего экрана после обновления.
|
||||
Если заявок нет, шаги про конкретную заявку пропускаются.
|
||||
«Пропустить», крестик и Escape завершают показ; «Помощь» повторяет тур текущего экрана.
|
||||
|
||||
Результат хранится в localStorage отдельно для каждого пользователя, версии тура и экрана.
|
||||
На другом устройстве подсказки появятся снова. При недоступном хранилище тур остаётся работоспособным,
|
||||
но после перезагрузки может появиться повторно.
|
||||
|
||||
Для следующего изменения рабочего процесса увеличьте `TOUR_VERSION`
|
||||
в `src/components/ui/GuidedTour.tsx` и обновите соответствующие шаги.
|
||||
Версия приложения сама по себе не запускает обучение заново.
|
||||
|
||||
## Проверки
|
||||
|
||||
```sh
|
||||
npm run lint
|
||||
npm test
|
||||
npm run build
|
||||
```
|
||||
|
||||
Регрессионные тесты проверяют перенос даты, проброс ошибки сохранения, независимость
|
||||
обновления счётчиков от сохранения, локальное состояние смены статуса и гонку запросов разных дат.
|
||||
|
||||
Для проверки ошибки в демо перед следующим сохранением:
|
||||
|
||||
```sh
|
||||
curl -X POST http://127.0.0.1:4174/__demo__/fail-next
|
||||
```
|
||||
|
||||
Первое сохранение завершится ошибкой, повторное с теми же данными — успешно.
|
||||
Этот служебный адрес существует только в демо-сервере.
|
||||
Reference in New Issue
Block a user