3.7 KiB
3.7 KiB
Доработки мини-приложения Clientright (TG/MAX и веб)
UI и навигация
- «Мои обращения»: дашборд с плитками по статусам (На рассмотрении, В работе, Решённые, Отклонённые, Все), заголовок переименован с «Жалобы потребителей».
- Убрана внешняя рамка у дашборда; карточки с hover-эффектом (подъём, тень), единая высота плиток, прозрачный фон у иконок.
- Список обращений по категориям в виде карточек с hover; фильтр по выбранной категории.
- Кнопка «Назад» перенесена в нижний бар; убраны дублирующие кнопки «Назад» из контента (описание, документы).
Telegram и MAX
- Выход: корректное закрытие приложения — в TG вызывается
Telegram.WebApp.close(), в MAX —window.WebApp.close()/postEvent('web_app_close'). Определение платформы по initData/URL. - Подключение скриптов по платформе: при наличии
tgWebAppData/tgWebAppVersionв URL грузится толькоtelegram-web-app.js, иначе — толькоmax-web-app.js(устранены ошибки UnsupportedEvent в MAX). - В TG/MAX не показывается экран ввода телефона — шаг «Вход» только для обычного веба; раннее определение платформы (опрос
WebApp.initData), флагplatformCheckedчтобы не мелькал телефон до определения.
Сессия и авторизация
- Сессию не сбрасывать при сетевых/временных ошибках
session/verify— удалятьsession_tokenтолько при явном ответеvalid: false. - При нажатии «Назад» с авторизованного пользователя не вести на шаг «Вход» — переход на дашборд «Мои обращения» или на
/hello. - Переход на «Подать обращение» через роут
/newиpushStateдля стабильного флоу без возврата на телефон.
Исправления
- TDZ-ошибка (пустой экран после перехода с /hello):
useEffectдляminiapp:goBackперенесён после объявленияprevStep(useCallback). - Тостер «Добро пожаловать!» показывается только в вебе (не в TG/MAX), проверка по
Telegram.WebApp.initDataиWebApp.initData.
Отладка и логи
- Клиентский логгер
miniappLogger: сбор событий, ошибок, отправка наPOST /api/v1/utils/client-log; идентификация бандла (build/moduleUrl); очистка логов при смене сборки. - Бэкенд: приём логов в
main.py, запись вlogs/cursor-debug-*.log(NDJSON), без PII.
Файлы
- Новые:
StepComplaintsDashboard.tsx/.css,StepDraftSelection.css,miniappLogger.ts. - Правки:
ClaimForm.tsx,HelloAuth.tsx,BottomBar.tsx,StepDescription.tsx,StepWizardPlan.tsx,StepDraftSelection.tsx,App.tsx,main.tsx,index.html,main.py,api/claims.py,ClaimForm.css,BottomBar.css,Dockerfile.prod.