mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 06:51:12 -05:00
Improve location data handling and error reporting in the app
Update LocationSearch component to safely access address properties and add fallback values for city, state, and country. Refactor supabase/functions/detect-location/index.ts to use a generic endRequest function, removing hardcoded status codes for error handling. Replit-Commit-Author: Agent Replit-Commit-Session-Id: 3c76e833-eccc-4712-b9a4-70241b5590a1 Replit-Commit-Checkpoint-Type: intermediate_checkpoint
This commit is contained in:
4
.replit
4
.replit
@@ -45,7 +45,3 @@ externalPort = 3001
|
||||
[[ports]]
|
||||
localPort = 37623
|
||||
externalPort = 3002
|
||||
|
||||
[[ports]]
|
||||
localPort = 46475
|
||||
externalPort = 3003
|
||||
|
||||
@@ -146,18 +146,23 @@ export function LocationSearch({ onLocationSelect, initialLocationId, className
|
||||
const latitude = parseFloat(result.lat);
|
||||
const longitude = parseFloat(result.lon);
|
||||
|
||||
const city = result.address.city || result.address.town || result.address.village;
|
||||
// Safely access address properties with fallback
|
||||
const address = result.address || {};
|
||||
const city = address.city || address.town || address.village;
|
||||
const state = address.state || '';
|
||||
const country = address.country || 'Unknown';
|
||||
|
||||
const locationName = city
|
||||
? `${city}, ${result.address.state || ''} ${result.address.country}`.trim()
|
||||
? `${city}, ${state} ${country}`.trim()
|
||||
: result.display_name;
|
||||
|
||||
// Build location data object (no database operations)
|
||||
const locationData: SelectedLocation = {
|
||||
name: locationName,
|
||||
city: city || undefined,
|
||||
state_province: result.address.state || undefined,
|
||||
country: result.address.country || '',
|
||||
postal_code: result.address.postcode || undefined,
|
||||
state_province: state || undefined,
|
||||
country: country,
|
||||
postal_code: address.postcode || undefined,
|
||||
latitude,
|
||||
longitude,
|
||||
timezone: undefined, // Will be set by server during approval if needed
|
||||
|
||||
@@ -259,7 +259,7 @@ serve(async (req) => {
|
||||
requestId: tracking.requestId
|
||||
});
|
||||
|
||||
endRequest(tracking, 200);
|
||||
endRequest(tracking);
|
||||
|
||||
return new Response(
|
||||
JSON.stringify({ ...result, requestId: tracking.requestId }),
|
||||
@@ -284,7 +284,7 @@ serve(async (req) => {
|
||||
requestId: tracking.requestId
|
||||
});
|
||||
|
||||
endRequest(tracking, 500, errorMessage);
|
||||
endRequest(tracking);
|
||||
|
||||
// Return default (metric) with 500 status to indicate error occurred
|
||||
// This allows proper error monitoring while still providing fallback data
|
||||
|
||||
Reference in New Issue
Block a user