mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 06:11:11 -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]]
|
[[ports]]
|
||||||
localPort = 37623
|
localPort = 37623
|
||||||
externalPort = 3002
|
externalPort = 3002
|
||||||
|
|
||||||
[[ports]]
|
|
||||||
localPort = 46475
|
|
||||||
externalPort = 3003
|
|
||||||
|
|||||||
@@ -146,18 +146,23 @@ export function LocationSearch({ onLocationSelect, initialLocationId, className
|
|||||||
const latitude = parseFloat(result.lat);
|
const latitude = parseFloat(result.lat);
|
||||||
const longitude = parseFloat(result.lon);
|
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
|
const locationName = city
|
||||||
? `${city}, ${result.address.state || ''} ${result.address.country}`.trim()
|
? `${city}, ${state} ${country}`.trim()
|
||||||
: result.display_name;
|
: result.display_name;
|
||||||
|
|
||||||
// Build location data object (no database operations)
|
// Build location data object (no database operations)
|
||||||
const locationData: SelectedLocation = {
|
const locationData: SelectedLocation = {
|
||||||
name: locationName,
|
name: locationName,
|
||||||
city: city || undefined,
|
city: city || undefined,
|
||||||
state_province: result.address.state || undefined,
|
state_province: state || undefined,
|
||||||
country: result.address.country || '',
|
country: country,
|
||||||
postal_code: result.address.postcode || undefined,
|
postal_code: address.postcode || undefined,
|
||||||
latitude,
|
latitude,
|
||||||
longitude,
|
longitude,
|
||||||
timezone: undefined, // Will be set by server during approval if needed
|
timezone: undefined, // Will be set by server during approval if needed
|
||||||
|
|||||||
@@ -259,7 +259,7 @@ serve(async (req) => {
|
|||||||
requestId: tracking.requestId
|
requestId: tracking.requestId
|
||||||
});
|
});
|
||||||
|
|
||||||
endRequest(tracking, 200);
|
endRequest(tracking);
|
||||||
|
|
||||||
return new Response(
|
return new Response(
|
||||||
JSON.stringify({ ...result, requestId: tracking.requestId }),
|
JSON.stringify({ ...result, requestId: tracking.requestId }),
|
||||||
@@ -284,7 +284,7 @@ serve(async (req) => {
|
|||||||
requestId: tracking.requestId
|
requestId: tracking.requestId
|
||||||
});
|
});
|
||||||
|
|
||||||
endRequest(tracking, 500, errorMessage);
|
endRequest(tracking);
|
||||||
|
|
||||||
// Return default (metric) with 500 status to indicate error occurred
|
// Return default (metric) with 500 status to indicate error occurred
|
||||||
// This allows proper error monitoring while still providing fallback data
|
// This allows proper error monitoring while still providing fallback data
|
||||||
|
|||||||
Reference in New Issue
Block a user