# EventHub Front — UX backlog (после stage walk) Baseline ~6.8/10 → после P0–P2 на stage ~**8.0/10** (rewalk). P3–P4: [EventHubFront#19](https://git.sabilin.com/EventHub/EventHubFront/issues/19). Canvas: `eventhub-front-ux-review` (до), `eventhub-front-ux-rewalk` (после). Трекер: [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