Files
EventHubSpec/UX-BACKLOG.md
T

96 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# EventHub Front — UX backlog (после stage walk)
Baseline ~6.8/10 → P0P2 ~**8.0/10** → после P3P4 deep walk ~**7.7/10** overall
→ после P5 + select fix ~**8.59/10** → после P6 + residual ~**10/10** (stage verified, Jul 2026).
P3P4: [EventHubFront#19](https://git.sabilin.com/EventHub/EventHubFront/issues/19) (closed).
P5: [EventHubFront#20](https://git.sabilin.com/EventHub/EventHubFront/issues/20) (closed).
P6: [EventHubFront#21](https://git.sabilin.com/EventHub/EventHubFront/issues/21) (closed).
Residual: [EventHubFront#23](https://git.sabilin.com/EventHub/EventHubFront/issues/23) (booking polish), [EventHubDevOps#8](https://git.sabilin.com/EventHub/EventHubDevOps/issues/8) (litter ops) — closed.
Canvas: `eventhub-front-ux-review``eventhub-front-ux-rewalk`**`eventhub-front-ux-deep`**.
Трекер: [EventHubFront#17](https://git.sabilin.com/EventHub/EventHubFront/issues/17) (P0+P1),
[EventHubFront#18](https://git.sabilin.com/EventHub/EventHubFront/issues/18) (P2).
## P0
- [x] Форматировать даты локалью (ru-RU / текущий i18n) везде: Записи, события, подписка
- [x] Убрать / спрятать opaque id из consumer UI (календари, поиск, специалисты)
- [x] Починить дубль title события (`displayTitle` — схлопывание `TitleTitle`)
## P1
- [x] Локализовать статусы + semantic pills (`StatusBadge`)
- [x] В заявках на событии показывать display name / email (`user_nickname` / `user_email` с API)
- [x] **Specialists invite: одно поле адресата** — lookup + email без отдельного «Или email»
## P2
- [x] Управление календарями: поиск, фильтр personal/commercial, pin + recent (localStorage)
- [x] Контраст метаданных профиля в dark / «Энергичный» mood
## P3 (после re-walk stage, UI e2f5a97 / API e301307)
- [x] Починить запись title (не только `displayTitle`): `buildEventBody` / form reset через `displayTitle`
- [x] Event sheet: skeleton/loading для заявок вместо flash «Нет заявок»
- [x] Discover: дедуп результатов + тише type pills (скрыть при активном type-фильтре)
- [x] `StatusBadge`: mood-aware стили под `data-mood=energetic`
- [x] Discover/stage: чистка E2E/Journey litter — `prune-e2e-litter.sh` + Playwright teardown ([EventHubDevOps#8](https://git.sabilin.com/EventHub/EventHubDevOps/issues/8))
## P4
- [x] Профиль: убрать ID из consumer UI
- [x] Календари: empty state фильтра + «Сбросить» + группа «Закреплённые»
- [x] A11y: один EventActionCard (panel/sheet по media query)
- [x] MoodSwitcher: не ронять контраст при saving
## P5 (deep walk, UI 0.1.17 / API 0.1.156)
- [x] Ops: сброс Mnesia на stage (`eventhub-data-1`) + `ensure-smoke-user` (calendars_count=1)
- [x] Front: скрыть opaque id на Отзывах и Тикетах; локализовать статусы/типы через StatusBadge
- [x] Discover Popular: дедуп по `type:id` (уже был; litter снят wipe’ом)
- [x] i18n leftovers: Login `toVerify`, following type, role `user`, ticket EN chips
- [x] Login forgot password — Back API (EventHubBack#57) + Front UI (EventHubFront#22)
- [x] Календари: overflow «⋯» для Edit/Delete; Pin/Open на виду
- [x] Month: `title` tooltip на событии в ячейке
- [x] More: MoodSwitcher checkmark как у Language
## P6 (к ~10, UI 0.1.19+)
Трекер: [EventHubFront#21](https://git.sabilin.com/EventHub/EventHubFront/issues/21). Вариант A (Front-first).
- [x] Toolbar workspace: select + date nav без конфликта на desktop
- [x] Empty states + CTA (месяц/неделя, отзывы, following)
- [x] Toasts на create event / book / follow — i18n через `notify.*`
- [x] i18n: Zod messages + aria date nav
- [x] Verify: auto-submit `?token=` + redirect `/login?verified=1`
- [x] Login forgot password — Back API (EventHubBack#57) + Front UI (EventHubFront#22)
## Residual → 10 (Jul 2026)
- [x] Ops: prune E2E/Journey litter на IFT/stage + teardown в stand e2e ([EventHubDevOps#8](https://git.sabilin.com/EventHub/EventHubDevOps/issues/8))
- [x] Booking: sheet swipe-dismiss, `/bookings` upcoming/past, post-book CTA ([EventHubFront#23](https://git.sabilin.com/EventHub/EventHubFront/issues/23))
- [x] Stage verify: swipe Playwright (Pixel 5), prune on host, smoke-owned litter по префиксу
## P2 stage journey (Front#35, Jul 2026) — shipped
- [x] SpecialistsPanel mobile density (имя/теги сверху, actions снизу full-width)
- [x] F6: EventActionCard past+pending → expired, без Cancel; Book скрыт на past
- [x] D9 модель B: guest roster → фильтр слотов по `specialist_id`; «Все слоты студии»
- [x] Confirmed foreign bookings overlay на default personal (Front-only)
Трекер: [EventHubFront#35](https://git.sabilin.com/EventHub/EventHubFront/issues/35).
## Mood + Lens workspace (Front#39, Jul 2026) — shipped
- [x] Mood chip в chrome календаря (sheet); убран из Ещё; 3 moods, без flip/CREATOR
- [x] Lens Обзор / Сегодня / Записи отдельно от mood и view modes
- [x] Strip над сеткой (Front-derive); mobile collapsed; desktop expanded
- [x] Persist: mood → `preferences.mood`; language → `user.language`; lens → localStorage
Трекер: [EventHubFront#39](https://git.sabilin.com/EventHub/EventHubFront/issues/39) (`c2cb754` / `d38a927`).
## Future (не блокер 10)
- [x] Swipe month/week + long-press create в календаре ([EventHubFront#24](https://git.sabilin.com/EventHub/EventHubFront/issues/24))