86e53b5f0b
Refs EventHub/EventHubFront#39 (c2cb754 / d38a927).
96 lines
5.9 KiB
Markdown
96 lines
5.9 KiB
Markdown
# 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 + residual ~**10/10** (stage verified, Jul 2026).
|
||
|
||
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) (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))
|