# EventHub Front — UX backlog (после stage walk) Baseline ~6.8/10 → P0–P2 ~**8.0/10** → после P3–P4 deep walk ~**7.7/10** overall → после P5 + select fix ~**8.5–9/10**. Цель P6: ощущение **~10**. P3–P4: [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) (in progress). 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` - [ ] Discover/stage: чистка E2E/Journey litter (ops, не Front) ## 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 — отдельно - [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 — отдельно ## Вне scope / ops - Авто-чистка E2E litter на стендах - Полный booking journey polish / mobile gestures