Commit Graph

52 Commits

Author SHA1 Message Date
gnezim 2d0c5c2c15 fix: add missing i18n translation keys across all languages
Added 49 missing translation keys that were being used in the React components but were not defined in the i18n JSON files:

SHARED keys (23):
- AIRCRAFT, AIRPORT, ARRIVAL, BACK, CANCEL, CLEAR, DATE, DEPARTURE, END_DATE
- FLIGHT, FROM, ONE_WAY, OPERATOR, REMARKS, RETURN_DATE, ROUND_TRIP, ROUTE
- SEARCH_HISTORY, SELECT_CITY, START_DATE, STATUS, TO, TRIP_TYPE

BOARD keys (12):
- AMENITIES, AVAILABLE_SEATS, BOARDING, CAPTAIN, CODESHARING, CREW_INFORMATION
- DEBOARDING, FIRST_OFFICER, FLIGHT_ATTENDANTS, SEATS, TOTAL_SEATS, VIEW_DETAILS

SCHEDULE keys (14):
- BROWSE_SCHEDULE, BROWSE_SCHEDULE_DESC, CODESHARE, DAYS_OF_WEEK
- DOWNLOAD_SCHEDULE, DOWNLOAD_SCHEDULE_DESC, DURATION, OPERATING_DAYS
- POPULAR_ROUTES, ROUTE_SCHEDULE, ROUTE_SCHEDULE_DESC, STOPS
- WEEKLY_VIEW, WEEKLY_VIEW_DESC

All 9 language files (en, ru, de, es, fr, it, ja, ko, zh) have been updated consistently.
2026-04-06 07:38:51 +03:00
gnezim 4c1a1e0b66 feat: add auto-search on city selection and display elements
- Auto-trigger search when departure or arrival city is selected
- Add display elements for selected cities (departure-display, arrival-display)
- Add display elements for selected dates (selected-departure-date, selected-return-date)
- Pass search params to filter component on search results page
- Support round-trip date selection with return date field
- Pass return date and trip type through navigation params

This fixes the first two search-filter tests (departure and arrival city searches).
Fixes #1 and #2 of the search-filter test suite.
2026-04-06 03:13:17 +03:00
gnezim 1a3256147a feat: align React online-board start page styling with Angular version
- Updated feature card grid from CSS Grid to Flexbox (2x2 layout with 50% width)
- Added background image and title icon SVGs for visual parity
- Changed card title colors from dark gray to blue (#0066cc) matching Angular links
- Fixed padding and spacing to match Angular (50px sections, 65px icon offset)
- Added data-testid attributes for E2E testing
- Created comprehensive visual design alignment report documenting changes
2026-04-06 02:26:51 +03:00
gnezim 403dc01708 fix: i18n language detection from URL path and add missing translation keys
- Update i18n language detection to extract language code from URL (/ru-ru/ → 'ru')
- Move public assets to src/public/ to match Vite root directory
- Add missing translation keys: SHARED.DATE, SHARED.FROM, SHARED.TO, SHARED.DEPARTURE, SHARED.ROUTE
- Fix router configuration to use relative paths for language-prefixed routes
- App now loads at /ru-ru/onlineboard with full Russian translations
2026-04-06 02:07:28 +03:00
gnezim c9a5bcd22d fix: replace dynamic imports with static imports to fix React app loading 2026-04-06 01:53:35 +03:00
gnezim e8e8796b6f fix: add missing i18n translation keys to ru.json 2026-04-06 01:40:45 +03:00
gnezim 739d1f7e4a fix: correct i18n keys in PageTabs and OnlineBoardStartPage components 2026-04-06 01:38:05 +03:00
gnezim 2b4eeb93eb fix: show route filter by default in online board
- Changed default activeTab from 0 to 1 to show Route Filter accordion tab by default
- This makes departure/arrival inputs visible for e2e tests
- Matches test expectations where inputs are directly accessible on start page
2026-04-06 00:55:59 +03:00
gnezim 3eb2697881 feat: improve online board tabs and flight data mocking
- Replaced PrimeReact TabView with custom tab buttons for better test compatibility
- Added proper 'active' class styling to tab buttons based on activeTab state
- Enhanced API mock data with complete flight information (all fields)
- Added 3 sample flights with different statuses (ON_TIME, DELAYED, BOARDING)
- Included departure/arrival details, boarding times, gates, and aircraft info
2026-04-06 00:53:41 +03:00
gnezim 273c3cf2fb feat: implement online board tabs and update component test IDs
- Added TabView to OnlineBoardSearchPage with Departures/Arrivals tabs
- Updated RouteFilter test IDs to match test expectations (departure-input, arrival-input, search-button)
- Integrated BoardSearchResult component for flight list display
- Added proper tab state management and data-testid attributes
2026-04-06 00:41:17 +03:00
gnezim 483e034e63 fix: update routing to show online board at /, fix component tests
- Changed root route (/) to show OnlineBoardStartPage directly instead of redirecting
- Updated component tests to visit /components route
- Fixed button component test assertions (CSS checks and disabled state verification)
2026-04-06 00:31:58 +03:00
gnezim f08a86c453 feat: implement NotFoundPage (404) and fix Cypress config
- Implement NotFoundPage with required test IDs for 404 error page
- Add data-testids: error-404-title, error-message, back-button, home-link, error-heading
- Fix Cypress baseUrl config from 3003/components to localhost:3001
- Clean up .js files in pages directory (keep only .tsx)
- App passes Task 1.1 requirements (404 page structure complete)
2026-04-06 00:18:31 +03:00
gnezim 14bcc960b4 feat: create shared component stubs and fix SCSS circular imports
- Created 8 core shared components: Card, PageLayout, PageTabs, DayTabs, CalendarInput, TimeSelector, CityAutocomplete, SearchHistory, PageLoader, PageEmptyList
- Fixed SCSS circular dependency: removed self-imports in components/modules-components/index.scss and modules-pages/index.scss
- Updated page exports to use feature-based implementations
- Added City interface to CityAutocomplete with mock city data
- App now loads at localhost:3001 without SCSS errors
2026-04-06 00:07:38 +03:00
gnezim 64c919afa0 fix: correct SCSS relative import depths for nested components
- Fixed all component SCSS files using single '../' to use '../../' to properly reach root styles directory
- Replaced incorrect './src/styles/' absolute-style paths with proper relative paths
- Fixed page directory imports with incorrect depth (../../../pages to ../../)
- All files in src/styles/components/* now use '../../' to reach framework, colors, variables, etc
- All files in src/styles/pages/* now use correct relative depth to reach sibling directories
- 86 SCSS files corrected
2026-04-05 23:00:38 +03:00
gnezim c4b02ccb6b fix: convert all SCSS absolute imports to relative paths for Vite compatibility 2026-04-05 22:56:21 +03:00
gnezim c4e7519d6f fix: convert SCSS absolute imports to relative paths for Vite compatibility 2026-04-05 22:55:14 +03:00
gnezim 399a35faa6 chore: add missing background image asset to React app 2026-04-05 22:49:12 +03:00
gnezim 7c59864680 feat: create ComponentShowcase page for e2e component testing 2026-04-05 22:06:35 +03:00
gnezim 4b2a03fb18 feat: create ScheduleFlightDetailsPage with schedule flight details 2026-04-05 21:22:01 +03:00
gnezim 0dc6732947 feat: create ScheduleSearchPage with week day tabs and flight schedule display 2026-04-05 21:20:17 +03:00
gnezim 8c68d31e12 feat: create ScheduleFilter with date range and day selection 2026-04-05 21:18:26 +03:00
gnezim dfd267f852 feat: create ScheduleStartPage and schedule feature structure 2026-04-05 21:16:40 +03:00
gnezim 50a5442d79 feat: create FlightDetailsPage with full flight information 2026-04-05 21:14:54 +03:00
gnezim 49c696610c feat: implement BoardFlightBody with detailed flight information 2026-04-05 21:13:12 +03:00
gnezim 0366db1a2f feat: implement BoardFlightHeader with full flight details display 2026-04-05 21:11:56 +03:00
gnezim 3e2d37887e feat: create BoardSearchResult with flight list and header/body components 2026-04-05 21:10:03 +03:00
gnezim 573b99ea1c feat: create OnlineBoardSearchPage for search results 2026-04-05 21:08:44 +03:00
gnezim 92ffc2a103 feat: create OnlineBoardFilter with FlightNumber and Route filters 2026-04-05 21:07:08 +03:00
gnezim e53ac746a4 feat: create OnlineBoardStartPage component 2026-04-05 21:04:45 +03:00
gnezim fa43a9e026 feat: create SearchHistory accordion component 2026-04-05 21:03:05 +03:00
gnezim 0d7f6c0954 feat: create CityAutocomplete airport search component 2026-04-05 21:02:00 +03:00
gnezim fd054bc688 feat: create TimeSelector time range component 2026-04-05 20:59:02 +03:00
gnezim 9bc930fe91 feat: create CalendarInput date picker component 2026-04-05 20:57:57 +03:00
gnezim 3225ecd1fa feat: create DayTabs date carousel component 2026-04-05 20:56:42 +03:00
gnezim b5bdd1e18d feat: create PageEmptyList empty state component 2026-04-05 20:55:06 +03:00
gnezim 9ba5c9cbf0 feat: create PageLoader spinner component 2026-04-05 20:54:12 +03:00
gnezim 509e1afb20 feat: create PageTabs navigation component 2026-04-05 20:52:24 +03:00
gnezim 12c2b36051 feat: create PageLayout two-column component 2026-04-05 20:51:09 +03:00
gnezim d8d2de43eb feat: create Card component wrapper 2026-04-05 20:50:09 +03:00
gnezim 9e0f661708 chore: update React router to match Angular app routes 2026-04-05 20:48:32 +03:00
gnezim 1ce307d61f chore: setup i18next configuration with 9 language support 2026-04-05 20:45:19 +03:00
gnezim 8ba79f64e8 chore: copy i18n translation files and SVG sprite from Angular 2026-04-05 20:44:16 +03:00
gnezim 344e310b58 chore: add API proxy configuration for flights API 2026-04-05 20:43:29 +03:00
gnezim d30071b756 Tasks 11-15: Implement CityAutocomplete, OnlineBoard, and BackstopJS setup
Tasks completed:
- Task 11: Create CityAutocomplete React component with debounced search
- Task 12: Implement OnlineBoard page with search and details components
- Task 13: Create BackstopJS baseline configuration for Angular
- Task 14: Create BackstopJS test configuration for React
- Task 15: Create full-validation.sh script for e2e and visual regression testing

All components built and tested successfully.
2026-04-05 19:23:52 +03:00
gnezim 95f49d7deb Task 9: Create React Router configuration with lazy loading and route structure 2026-04-05 19:20:23 +03:00
gnezim 4b34a78890 Task 8: Create Modal, Tabs, and DatePicker components
- Modal component with size variants (small, medium, large)
- Tabs component with active state management and onChange callback
- DatePicker component with calendar interface and date selection
- All components implement BEM naming convention
- All components include data-testid attributes for testing
- SCSS files provide complete styling for each component
- Index files export components and types for easy importing
2026-04-05 19:20:06 +03:00
gnezim 9356945d93 Task 10: Create test helper files and base test templates
- Create helpers directory structure
- Add api-helpers.ts with authentication and API mocking functions
- Add ui-helpers.ts with common UI interaction utilities
- Add data-helpers.ts with test data generators
- Create base.spec.ts as reusable test template
- Update support/index.ts to import and expose helper modules globally
2026-04-05 19:19:49 +03:00
gnezim 8d562dd55c feat: create Input component with label, error, and helper text support 2026-04-05 19:19:43 +03:00
gnezim f8120c154f styles: copy global and component SCSS files from Angular to React
- Copy 30+ global SCSS files to apps/react/src/styles/
- Copy 75+ component SCSS files to apps/react/src/styles/components/
- Organize by feature: online-board, schedule, flights-map, popular-requests, shared, toolkit
- Organize pages styles: board, schedule, adaptive
- Update main.tsx to import styles entry point
2026-04-05 19:17:57 +03:00
gnezim 7de28854cf fix: move index.html to src/ subdirectory per specification
- Moved index.html from apps/react/ to apps/react/src/
- Updated vite.config.ts to set src as root directory
- Adjusted build output path from 'dist' to '../dist'
- Updated script reference in index.html from absolute to relative path
2026-04-05 19:02:26 +03:00