diff --git a/apps/edr-freight-web/backoffice/.env.example b/apps/edr-freight-web/backoffice/.env.example index 454817139..36bdb80de 100644 --- a/apps/edr-freight-web/backoffice/.env.example +++ b/apps/edr-freight-web/backoffice/.env.example @@ -12,3 +12,9 @@ VITE_TOKEN_REFRESH_INTERVAL_MINUTES=10 # observability stays off (the app works either way). Self-hosted instance. VITE_POSTHOG_KEY=phc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx VITE_POSTHOG_HOST=https://posthog.example.com + +# Maps JavaScript API key (fleet TrackingPage). Required — the hardcoded +# fallback in TrackingPage.tsx is expired (ExpiredKeyMapError), so without +# this set the tracking map renders blank. Get a key from the Google Cloud +# Console (Maps JavaScript API + Places API + Geocoding API enabled). +VITE_GOOGLE_MAPS_API_KEY= diff --git a/apps/edr-freight-web/backoffice/src/pages/fleet/TrackingPage.tsx b/apps/edr-freight-web/backoffice/src/pages/fleet/TrackingPage.tsx index 958d99775..b773e9c7c 100644 --- a/apps/edr-freight-web/backoffice/src/pages/fleet/TrackingPage.tsx +++ b/apps/edr-freight-web/backoffice/src/pages/fleet/TrackingPage.tsx @@ -34,6 +34,8 @@ import { gpsTrackingService, type GpsDevice } from "@/services/gps-tracking.serv import { freightBrand } from "@/theme/freight-brand"; // Same default key + env override the portal's LocationPicker uses. +// NOTE: fallback key is EXPIRED (ExpiredKeyMapError) — set +// VITE_GOOGLE_MAPS_API_KEY (see .env.example) to a live key. const GOOGLE_MAPS_API_KEY = import.meta.env.VITE_GOOGLE_MAPS_API_KEY || "AIzaSyBg4tN31-fgvH_2Ix_TPo6VSfOA2uA5CCI"; diff --git a/apps/edr-freight-web/portal/src/pages/bookings/new-booking-form/LocationPicker.tsx b/apps/edr-freight-web/portal/src/pages/bookings/new-booking-form/LocationPicker.tsx index 8832279ad..45d133c5c 100644 --- a/apps/edr-freight-web/portal/src/pages/bookings/new-booking-form/LocationPicker.tsx +++ b/apps/edr-freight-web/portal/src/pages/bookings/new-booking-form/LocationPicker.tsx @@ -47,6 +47,12 @@ interface PlacePrediction { // Maps JavaScript API keys are public client-side keys (lock them down by // HTTP-referrer in the Google Cloud console). The env var lets deployments // override the default key without a code change. +// +// NOTE: the fallback key below is EXPIRED (confirmed via live request — +// "Google Maps JavaScript API error: ExpiredKeyMapError"), which renders +// this picker's map blank while the search box spins forever. Set +// VITE_GOOGLE_MAPS_API_KEY (see .env.example) to a live key to fix it; don't +// rely on this default. const GOOGLE_MAPS_API_KEY = import.meta.env.VITE_GOOGLE_MAPS_API_KEY || "AIzaSyBg4tN31-fgvH_2Ix_TPo6VSfOA2uA5CCI";