Files
aiform_prod/CHANGELOG_MINIAPP.md
2026-02-23 11:31:52 +03:00

3.7 KiB
Raw Blame History

Доработки мини-приложения 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.