@@ -98,8 +98,18 @@ export default function Home() {
9898 if ( firebaseRoutes . length > 0 ) {
9999 // Sort by date (newest first) and don't merge with localStorage
100100 const sortedRoutes = firebaseRoutes . sort ( ( a , b ) => new Date ( b . date ) . getTime ( ) - new Date ( a . date ) . getTime ( ) ) ;
101- setRoutes ( sortedRoutes ) ;
102- console . log ( "Set routes to Firebase routes, sorted by date" ) ;
101+
102+ // Deduplicate by route ID
103+ const uniqueRoutes = sortedRoutes . filter ( ( route , index , self ) =>
104+ index === self . findIndex ( ( r ) => r . id === route . id )
105+ ) ;
106+
107+ if ( uniqueRoutes . length < sortedRoutes . length ) {
108+ console . log ( "Removed" , sortedRoutes . length - uniqueRoutes . length , "duplicate routes" ) ;
109+ }
110+
111+ setRoutes ( uniqueRoutes ) ;
112+ console . log ( "Set routes to unique routes:" , uniqueRoutes . length ) ;
103113 }
104114 } catch ( e ) {
105115 console . error ( "Failed to load routes from Firebase:" , e ) ;
@@ -335,12 +345,22 @@ export default function Home() {
335345 return colors [ Math . floor ( Math . random ( ) * colors . length ) ] ;
336346 } ;
337347
338- const deleteRoute = ( id : string ) => {
348+ const deleteRoute = async ( id : string ) => {
339349 const updated = routes . filter ( ( r ) => r . id !== id ) ;
340350 saveRoutes ( updated ) ;
341351 if ( selectedRoute ?. id === id ) {
342352 setSelectedRoute ( null ) ;
343353 }
354+ // Also delete from Firebase
355+ if ( user && db ) {
356+ try {
357+ const { deleteDoc } = await import ( "firebase/firestore" ) ;
358+ await deleteDoc ( doc ( db , "routes" , id ) ) ;
359+ console . log ( "Deleted route from Firebase:" , id ) ;
360+ } catch ( e ) {
361+ console . error ( "Failed to delete from Firebase:" , e ) ;
362+ }
363+ }
344364 } ;
345365
346366 const discardSuggestion = ( ) => {
0 commit comments