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
81a6a296fd
Drop redundant 'px' on zero-value paddings (CSS lint cleanup)
2026-04-20 21:04:09 +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
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
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
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
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
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
gnezim
93684c1bbb
font-size: 14px → fonts.$font-size-m across 15 SCSS files (brand palette parity)
2026-04-20 17:48:12 +03:00
gnezim
41ed2bdc1d
font-size: 12px → fonts.$font-size-s across 21 SCSS files (brand palette parity)
2026-04-20 17:37:03 +03:00
gnezim
42e595cb16
font-size: 10px → fonts.$font-size-xs across 5 feature SCSS files
2026-04-20 17:35:44 +03:00
gnezim
4a653849f4
Final font-weight: 500 sweep: 9 more SCSS files use fonts.$font-medium (brand palette parity)
2026-04-20 17:21:22 +03:00
gnezim
43a7380059
Replace font-weight: 500 literals with fonts.$font-medium across 8 SCSS files (brand palette parity)
2026-04-20 17:08:06 +03:00
gnezim
c283e3bab4
WeekTabs + FullRouteTimeline: font-weight: 600 → fonts.$font-bold (brand palette parity)
2026-04-20 16:56:28 +03:00
gnezim
3cb9f87d04
ScheduleFlightBody: swap 3px literals for vars.$border-radius (3 occurrences)
2026-04-20 16:54:22 +03:00
gnezim
e694ccf42b
ScheduleFlightBody "Купить" button: wire onBuy → Aeroflot booking URL
...
DayGroupedFlightList gains an optional `onBuy` prop that forwards to
ScheduleFlightBody. ScheduleSearchPage implements handleBuy — matches
BoardDetailsHeader.BuyTicketButton: opens
`aeroflot.ru/sb/app/{lang}-{lang}#/search?routes={dep}.{yyyyMMdd}.{arr}`
in a new tab, using the first leg's airportCode + scheduled-departure
UTC for direct and multi-leg flights.
Previously the Buy button rendered but its click was `onBuy?.()` with
no handler wired, so nothing happened. The button text + wiring now
mirror Angular's `buy-ticket-button.component`.
2026-04-20 16:51:06 +03:00
gnezim
bb49a5d609
Fix Schedule "Details" button + search-history sync
...
Schedule:
- ScheduleSearchPage wires handleFlightClick to DayGroupedFlightList so
the "Детали рейса" button in the expanded flight body navigates to
/{lang}/schedule/{carrier}{flightNumber}-{yyyyMMdd} (Angular's
ScheduleNavigationService.toDetailsPage equivalent). Previously the
Details button fired onStatus → no handler → no-op.
Search history:
- useSearchHistory now broadcasts a custom `afl:search-history-changed`
window event on add/clear and listens for it in a useEffect. Fixes
the case where a route-level component (ScheduleSearchPage) adds to
storage while a sibling SearchHistory sidebar had already captured
an empty initial value via useState — the sidebar now re-reads
storage and shows the history without a page reload.
2026-04-20 16:34:52 +03:00
gnezim
3806e8371a
ScheduleSearchPage direction-switch: $space-xl margin + bottom border (Angular .schedule-home-page-header parity)
2026-04-20 16:18:37 +03:00
gnezim
ea25f5c017
Replace 4 rgba(46,87,255,0.04/0.06/0.08) hover tints with $blue-extra-light / $blue-icon (brand palette)
2026-04-20 15:50:30 +03:00
gnezim
d063281b09
ScheduleFlightBody share-btn: hover uses $blue-icon (Angular share-button parity)
2026-04-20 15:48:13 +03:00
gnezim
15f3356a75
ScheduleSearchPage: add Angular page-footer-notes to results frame
2026-04-20 15:17:34 +03:00
gnezim
d7a9ae5d79
FlightCard schedule grid: match Angular schedule-list-flight-header (80px number, minmax(45,240)px stations)
2026-04-20 13:52:59 +03:00
gnezim
21a557b875
ScheduleFilter: search button uses Angular blue-light 48px pill styling (Angular parity)
2026-04-20 13:28:30 +03:00
gnezim
e4c8948cdc
ScheduleFilter: add return-flight date range + time slider when round-trip (Angular parity)
2026-04-20 13:26:35 +03:00
gnezim
9134a830da
ScheduleStartPage: add validation-tooltip SCSS for same-cities error
2026-04-20 13:23:08 +03:00
gnezim
d44eb2fe71
ScheduleStartPage: add departure===arrival same-cities validation (Angular parity)
2026-04-20 13:21:51 +03:00
gnezim
02c6003225
ScheduleStartPage: Calendar min/max ±1/+330 days, return dates as single range picker (Angular parity)
2026-04-20 13:20:29 +03:00
gnezim
922e41e5c9
ScheduleStartPage: use shared CityAutocomplete (adds clear button + regional picker parity)
2026-04-20 13:18:29 +03:00
gnezim
0e74d9d196
FlightCard schedule mode + DayGroupedFlightList headers: number column 80→60px (Angular parity)
2026-04-20 13:00:51 +03:00