gnezim
f03562e4cd
Align Online-Board page titles with TZ Table 6 (сегодня/завтра/ДД.ММ.ГГГГ date display)
...
- Add formatDateForTitle helper: returns today/tomorrow labels or dd.MM.yyyy
- Switch all search page title builders to use formatDateForTitle; descriptions keep dd.MM.yyyy
- FLIGHT-DETAILS title now uses routeCities (no date) per TZ rows 6-8; adds TITLE-NO-ROUTE fallback for SSR when cities not yet loaded
- buildFlightDetailsSeoFromId accepts optional cityNames param
- Update ru/en i18n TITLE strings to TZ Table 6 format; add TITLE-NO-ROUTE to all 9 locales
- Tests: 32 cases covering today/tomorrow/arbitrary-date branches and routeCities logic
2026-04-21 17:18:59 +03:00
gnezim
4f840486b8
Consolidate scattered +330/+6mo date-window literals into shared dateWindow module
2026-04-21 17:09:17 +03:00
gnezim
8b22f0601f
Use shared detailsRequestParam codec for mini-list parent-request (route + flight kinds)
2026-04-21 16:37:32 +03:00
gnezim
7577e703c2
Close SharePanel on Escape + mark as role=dialog with aria-label (a11y + PrimeNG parity)
2026-04-21 08:32:21 +03:00
gnezim
36db7d3f2e
Add aria-label to OnlineBoard search forms (flight-number + route) for a11y
2026-04-21 08:30:25 +03:00
gnezim
3d815fa9e3
Add aria-label to Schedule search forms (a11y discoverable forms)
2026-04-20 23:08:55 +03:00
gnezim
fd101819af
Add aria-invalid to flight-number input when error is present (a11y)
2026-04-20 23:07:12 +03:00
gnezim
9948bcd3dc
Add role=alert to filter validation tooltips so errors are announced to screen readers
2026-04-20 22:34:25 +03:00
gnezim
5d5a403bf0
Add role=status + aria-live=polite to SignalR connection status badges (a11y)
2026-04-20 22:25:37 +03:00
gnezim
22d9fca5b2
Add role=alert/status to error+not-found banners across details + search pages (a11y)
2026-04-20 22:24:05 +03:00
gnezim
590a8aac14
Add aria-pressed to active DayTab + WeekTab buttons (a11y)
2026-04-20 22:12:00 +03:00
gnezim
8679a7ecc7
i18n WeekTabs aria-labels (was hardcoded English) using existing A11Y-PREV/NEXT-PAGE keys
2026-04-20 22:07:32 +03:00
gnezim
e8701eb5b7
Add aria-hidden to decorative arrow-icon spans in OnlineBoardFilter accordion headers
2026-04-20 22:03:35 +03:00
gnezim
841099287a
Add aria-expanded to FlightSchedule + FlightDetailsAccordion accordion triggers (a11y)
2026-04-20 21:53:14 +03:00
gnezim
32d80332ff
Add aria-expanded to accordion role=button triggers (a11y parity for filter + SearchHistory)
2026-04-20 21:51:47 +03:00
gnezim
5aae968610
Clarify IOperatingBy.flightNumber doc — it IS used for code-share display
2026-04-20 21:31:45 +03:00
gnezim
81a6a296fd
Drop redundant 'px' on zero-value paddings (CSS lint cleanup)
2026-04-20 21:04:09 +03:00
gnezim
db0365833f
Tokenize 12px padding literal in FlightsMiniList
2026-04-20 20:50:04 +03:00
gnezim
9f5ebae747
Tokenize font-weight: normal → fonts.$font-regular across 3 SCSS files
2026-04-20 20:48:27 +03:00
gnezim
24da3ab9d1
Add tooltips to schedule direction-switch buttons (Angular pTooltip parity)
2026-04-20 20:37:06 +03:00
gnezim
90f6af41dd
Tokenize 8px/10px/12px padding+gap literals in ScheduleDetailsPage + FlightDetailsAccordion + FlightSchedule
2026-04-20 20:22:46 +03:00
gnezim
93926dedb8
Tokenize 8px margin literals in ScheduleStartPage + ScheduleFlightBody
2026-04-20 20:16:22 +03:00
gnezim
9250b5633a
Tokenize remaining literals: BoardDetailsHeader padding/gap, WeekTabs/DayQuickPick padding, TimeGroup font-weight:300 → $font-light
2026-04-20 20:12:03 +03:00
gnezim
d942cb55bc
Add IFlyWarning component shown on details pages for SU5801-5948 flights (Angular parity)
2026-04-20 20:02:45 +03:00
gnezim
28c88873a5
Tokenize 10px/12px button padding literals in FlightCard + ScheduleFlightBody + CityPickerPopup
2026-04-20 19:57:00 +03:00
gnezim
00be15a51a
Tokenize 12px/8px padding literals in DayTabs + details-panels (Angular parity)
2026-04-20 19:55:07 +03:00
gnezim
c820cc6baf
Render FullRouteTimeline on Schedule details for multi-leg flights (Angular parity)
2026-04-20 19:53:21 +03:00
gnezim
2967fcea97
Tokenize mobile padding + transition-duration literals (Angular parity)
2026-04-20 19:51:21 +03:00
gnezim
342561ecc4
Replace remaining 3px border-radius literal in OnlineBoardFilter with token
2026-04-20 19:49:12 +03:00
gnezim
3a64476968
Use $medium-button-height token for Schedule search button height
2026-04-20 19:45:15 +03:00
gnezim
8ad63f0b0a
Use existing i18n keys (INTERMEDIATE-LANDING-PLURAL-ONE, BACK-SCHEDULE) and drop non-existent fallbacks
2026-04-20 19:42:58 +03:00
gnezim
8c7b824a9e
Render FlightSchedule (weekly days strip) on Schedule details direct flights (Angular parity)
2026-04-20 19:39:15 +03:00
gnezim
991c290c9c
Tokenize DetailsBackButton + FlightStatus font-size (Angular parity)
2026-04-20 19:37:30 +03:00
gnezim
6b236ba706
Tokenize flight-action-btn spacing/fonts (Angular parity)
2026-04-20 19:35:57 +03:00
gnezim
ca8fe33b8c
Replace 40px/20px/10px/12px literals with vars.$space tokens across 4 SCSS files
2026-04-20 19:34:43 +03:00
gnezim
a4923599b9
Wire Buy button on Schedule details page (Angular flight-actions parity)
2026-04-20 19:32:56 +03:00
gnezim
cf93b28699
Replace literal 3px border-radius with vars.$border-radius token across 5 files
2026-04-20 19:28:31 +03:00
gnezim
9564085f23
Unify transitions: 120/150ms → 0.2s across 14 SCSS files (Angular parity)
2026-04-20 19:24:28 +03:00
gnezim
da896260e6
Replace 8px directional margins with vars.$space-s2 (3 files)
2026-04-20 19:02:31 +03:00
gnezim
933407832a
Replace 5px directional margins with vars.$space-s (2 files)
2026-04-20 18:56:34 +03:00
gnezim
0b84974c7a
ScheduleStartPage bottom-description: padding 40px → vars.$space-xxl
2026-04-20 18:38:58 +03:00
gnezim
23b72bc535
WeekTabs + FlightSchedule: margin-top/bottom 12px → vars.$space-m2
2026-04-20 18:37:39 +03:00
gnezim
9ff034d19f
OnlineBoard search: render Купить/Онлайн регистрация in expanded row
...
Angular's board search results expansion shows [Купить] [Онлайн
регистрация] [Детали рейса]. React only rendered Details. Added a
`renderActions` prop on FlightCard/FlightList so the feature layer
can inject extra buttons without the ui layer importing from
features. OnlineBoardSearchPage wires it to FlightActions with
showShare=false (the row already has a dedicated share icon).
Visibility rules fall through to canBuyTicket / canRegister (same
as BoardDetailsHeader), so cancelled/past flights still hide the
Buy button and carriers without a registrationUrl still hide the
Online Registration button — matching Angular's per-flight gating.
Integration test mocks useAppSettings to avoid requiring the real
ApiClientProvider in flight-search.test.tsx.
2026-04-20 18:27:31 +03:00
gnezim
2134447664
Replace margin/padding 20px directional literals with vars.$space-xl tokens (3 files)
2026-04-20 18:19:10 +03:00
gnezim
8de1f197fd
Replace padding/margin 10px/20px literals with vars.$space-m/$space-xl tokens (3 files)
2026-04-20 18:17:41 +03:00
gnezim
2bc61de87d
Replace gap 10/12/15/20px literals with vars.$space-m/m2/l/xl tokens across 5 SCSS files
2026-04-20 18:05:50 +03:00
gnezim
9778d6ba8a
Replace 8px padding/gap/margin literals with vars.$space-s2 across 7 SCSS files
2026-04-20 18:04:33 +03:00
gnezim
50885b7afd
font-size 22px/30px → fonts.$font-size-xl2/$font-size-xxl across 4 SCSS files
2026-04-20 17:54:01 +03:00
gnezim
623f282f56
font-size 18px/20px → fonts.$font-size-xl/$font-size-xl1 across 16 SCSS files (brand palette parity)
2026-04-20 17:52:31 +03:00
gnezim
fbf99f427f
font-size: 16px → fonts.$font-size-l across 8 SCSS files (brand palette parity)
2026-04-20 17:49:21 +03:00