Commit Graph

10 Commits

Author SHA1 Message Date
gnezim db163f5645 Resolve popular-request codes to city/airport names
useCityName was a 'phase 2 stub' that returned the IATA code
unchanged, so the popular-requests panel read 'Маршрут: SVO - LED'
instead of 'Маршрут: Шереметьево - Санкт-Петербург'. Rewire the hook
to read the current locale and look up cityByCode / airportByCode
from the loaded dictionaries, falling back to the code only while
dictionaries are loading or for unknown codes (matches Angular's
DictionariesService.getCityOrAirport).

Tests expanded to cover the city/airport resolutions and the
loading / unknown fallback paths (5 total, 1258 suite green).
2026-04-18 11:02:12 +03:00
gnezim c8d0caa9cf Fix five console-level issues surfaced by live-deploy Playwright audit
1. FlightsMap tiles didn't render: MapCanvas inline height:100% resolved
   to 0 against min-height parents. Hand sizing to consumer CSS so
   .flights-map-start__map height:500px wins.

2. FlightsMap /map/api/tile/{z}/{x}/{y}.jpeg requests fell through to
   Modern.js SSR (HTML body). Dev proxy now forwards /map/* to the
   test env via curl with image headers and binary-safe piping.

3. PopularRequestsPanel duplicate React key (Route-SVO-LED appears
   twice in upstream). Suffix the key with the visible index.

4. OnlineBoardDetailsPage /onlineboard/details 400. Upstream expects
   an ISO datetime (yyyy-MM-DDTHH:mm:ss), matching Angular's
   ApiFormatterService.formatDate. Append T00:00:00.

5. Browser-level SignalR CORS errors on every details page: the
   default SIGNALR_HUB_URL pointed at an unreachable placeholder.
   Default to empty + skip the connection in useLiveFlights when
   blank. Also configureLogging(LogLevel.None) so SignalR stops
   writing its own negotiation failures to console. Live updates
   re-enable by setting SIGNALR_HUB_URL on a deployment.
2026-04-17 21:55:44 +03:00
gnezim aa60c29685 Extend useAppSettings with flightStatus and buyTicket button config 2026-04-17 01:20:11 +03:00
gnezim a1dfa5f628 Add useAppSettings hook for parsing app config day ranges 2026-04-17 00:17:55 +03:00
gnezim 5fc67f81bd Wire city autocomplete to dictionary API
CI / ci (push) Failing after 37s
Deploy / build-and-deploy (push) Failing after 6s
useCitySearch hook loads cities from /api/dictionary/1/cities on first
use, then searches in-memory by name prefix and code -- matching the
Angular CitiesSearchService behavior. Wired into OnlineBoardFilter,
ScheduleStartPage, and FlightsMapFilter AutoComplete components.
2026-04-15 21:32:39 +03:00
gnezim 031ad7c15d Fix lint warnings and test environment for Phase 5 tests
Remove unused type alias, unused variable, add jsdom environment
directive, and use container.textContent for cross-element text
assertions.
2026-04-15 10:09:56 +03:00
gnezim 99af1fe00d Add Phase 5D useSearchHistory hook with per-language namespacing
Persists search history to localStorage via @/shared/storage with
language-scoped keys (afl_history_{lang}). Supports dedup by URL,
max 10 items, and clear functionality.
2026-04-15 10:01:31 +03:00
gnezim b3ab73253d Add data model types, datetime utils, and dictionary hook
Port Angular flight types (ISimpleFlight, IFlightLeg, ITimesSet, etc.)
to minimal React-friendly interfaces. Add formatDuration/formatTime/
formatDate/isDayChange as pure functions. Stub useCityName hook as
passthrough pending customer dictionary API endpoint.
2026-04-15 07:55:00 +03:00
gnezim ebe6c38713 Fix lint warnings in SignalR wrapper and hook tests
Remove unused imports, eliminate non-null assertions,
drop invalid eslint-disable comment for missing rule.
2026-04-15 00:44:31 +03:00
gnezim 4c52bb4032 Add useLiveFlights SSR-safe hook with tests
Generic hook wrapping SignalR subscription with SSR guard
(typeof window check). Includes tests for subscribe, data
updates, cleanup, and SSR path.
2026-04-15 00:42:51 +03:00