feat: add passenger information and settings components
- Introduced `PassengerInfo.tsx` for displaying trip details, including upcoming trips and fare information. - Added `PassengerSettings.tsx` for managing user-defined important places and fare settings. - Implemented validation functions for passenger settings in `passenger-settings.mjs`. - Created utility functions for transliterating stop names in `transliteration.ts`. - Developed weather hint functionality in `weather-hint.ts` to provide precipitation probabilities. - Established a mock server for testing passenger-related features in `passenger-server.mjs`. - Added comprehensive tests for passenger guide logic and transliteration functionality.
This commit is contained in:
@@ -11,9 +11,16 @@ export type Stop = { id: number; name: string; direction: string };
|
||||
export type BoardData = { cityId: number; cityName: string; stop: Stop; departures: Departure[]; routes: Route[];
|
||||
alerts: Alert[]; alertsAvailable: boolean; partial: boolean; updatedAt: string; serverTime?: string; serviceDate: string; mode: 'live' | 'demo' };
|
||||
export type Config = { cityId: number; cityName: string; stopName: string; defaultStopId: number; configured: boolean; refreshSeconds: number; timeZone: string; passengerBaseUrl?: string };
|
||||
export type Place = { stopId: number; name: string };
|
||||
export type FareTerms = { price: string; payment: string; checkedAt: string };
|
||||
export type FareRule = FareTerms & { routeId: number };
|
||||
export type FareTypeRule = FareTerms & { cityId: number; type: 'bus' | 'minibus' };
|
||||
export type Settings = { stopId: number; demo: boolean; mainSeconds: number; infoSeconds: number; holdNear: boolean;
|
||||
rowCount: number; routeFilter: string; theme: 'dark' | 'light'; colorScheme: string; lightColorScheme: string;
|
||||
infoServiceEnabled: boolean; infoWeatherEnabled: boolean; infoQrEnabled: boolean;
|
||||
journeyTranslitEnabled: boolean;
|
||||
infoPlacesEnabled: boolean; infoFareEnabled: boolean; lastTripNoticeEnabled: boolean; weatherHintEnabled: boolean;
|
||||
places: Place[]; fareRules: FareRule[]; fareByType: FareTypeRule[];
|
||||
showNextSameRoute: boolean; longWaitEnabled: boolean; displayProfile: 'tv' | 'street'; viewingDistance: 'near' | 'medium' | 'far';
|
||||
nightMode: 'off' | 'auto'; nightWakeMinutes: 45 | 60;
|
||||
adsEnabled: boolean; adSeconds: number; adTitle: string; adText: string };
|
||||
|
||||
Reference in New Issue
Block a user