Commit Graph

8 Commits

Author SHA1 Message Date
gnezim a982d9a669 Fix lint: route sessionStorage through shared storage module, drop dead imports
- storage.ts: add sessionStore wrapper (getRaw/setRaw/delete/clear) so
  transientPrefill + ScheduleStartPage tests don't trip the
  no-restricted-globals rule.
- transientPrefill.ts + ScheduleStartPage.test.tsx: use sessionStore.
- closestFlight.ts: hoist bracket-index key so no newline-before-[ ASI.
- Test files: hoist typeof import(...) into named type alias with
  type-only namespace import.
- Drop unused imports: FlightCard (Link, languageToLocale),
  OnlineBoardDetailsPage (operatingCarrier),
  ScheduleSearchPage (FlightList, inline import() types),
  PageLayout (FeedbackButton).
- Drop react-hooks/exhaustive-deps disable comments for a rule not
  registered in eslint.config.js.
2026-04-20 08:15:21 +03:00
gnezim 87f38fec9e Skip useOnlineBoard fetch when dateFrom/dateTo are empty
Details page calls useOnlineBoard to populate the sibling mini-list,
passing empty-string params when the URL has no ?request=... context.
The empty params were reaching the backend as dateFrom=&dateTo=, which
returns HTTP 400 and surfaces as an error in the browser console.

Short-circuit the effect so we just emit an empty result when either
range bound is missing — same no-fetch behavior, no console noise.
2026-04-18 19:12:59 +03:00
gnezim 8760176bea Expose daysOfFlight from useFlightDetails for day-tabs navigation 2026-04-17 00:19:08 +03:00
gnezim 58215a4bf0 Expose allFlights array from useFlightDetails for mini-list sidebar 2026-04-16 23:23:18 +03:00
gnezim 47628c9a15 Fix lint warning and update test assertions for ISO date format
CI / ci (push) Failing after 37s
Deploy / build-and-deploy (push) Failing after 6s
2026-04-15 22:41:08 +03:00
gnezim 71d0c983fd Fix API calls: bind fetch to globalThis, fix date format for calendar
CI / ci (push) Failing after 28s
Deploy / build-and-deploy (push) Failing after 5s
Root cause of search not working: globalThis.fetch stored as a class
field loses its Window binding, causing 'Illegal invocation'. Fixed
with fetch.bind(globalThis).

Also fix calendar days endpoint date format from yyyyMMdd to
yyyy-MM-ddT00:00:00 matching Angular's ApiFormatterService.
2026-04-15 22:32:51 +03:00
gnezim c6c0ce2bfc Wire useLiveFlights to TrackerHub channels for Online Board (Phase 2D)
Two thin composition hooks that connect the generic SignalR hook (1E)
to board-specific channels: useLiveBoardSearch for search pages
(SubscribeDate channel) and useLiveFlightDetails for the details page
(Subscribe channel). Both are SSR-safe and client-only.
2026-04-15 08:15:09 +03:00
gnezim 8218dffcd9 Add Phase 2C: Online Board API functions and React hooks
Pure API functions (searchFlights, getFlightDetails, getCalendarDays)
with dependency-injected ApiClient, plus three thin React hooks
(useOnlineBoard, useFlightDetails, useCalendarDays) for search,
details, and calendar pages. 17 TDD tests for API layer covering
URL construction, response mapping, and error handling.
2026-04-15 08:09:53 +03:00