fix: back buttons missing router instance mapping and fix array structure in supabase route stops fetch

This commit is contained in:
2026-02-25 23:38:05 -05:00
parent 528e3989ef
commit 6303aa4b35
5 changed files with 56 additions and 12 deletions

View File

@ -42,17 +42,26 @@ export const routesService = {
.eq('route_id', routeId)
.order('stop_order', { ascending: true })
if (error) throw new Error(error.message)
if (error) {
console.error('getRouteStops Error:', error)
throw new Error(error.message)
}
console.log('getRouteStops raw data:', data)
// Map back to the expected plain array of BusStop with merged properties
return (data || []).map((row: any) => ({
...row.bus_stops,
stop_order: row.stop_order,
travel_time_minutes: row.travel_time_minutes,
stop_delay_minutes: row.stop_delay_minutes,
is_pickup_point: row.is_pickup_point,
is_dropoff_point: row.is_dropoff_point
})) as BusStop[]
return (data || []).map((row: any) => {
// Handle possibility of bus_stops being an array or object
const busStopData = Array.isArray(row.bus_stops) ? row.bus_stops[0] : row.bus_stops;
return {
...(busStopData || {}),
stop_order: row.stop_order,
travel_time_minutes: row.travel_time_minutes,
stop_delay_minutes: row.stop_delay_minutes,
is_pickup_point: row.is_pickup_point,
is_dropoff_point: row.is_dropoff_point
}
}) as BusStop[]
},
/** Create a new route (Admin) */

View File

@ -1,7 +1,7 @@
<template>
<div class="admin-bus-stops">
<div class="header">
<button class="back-link" @click="$router.push('/admin')">&larr; Volver al Panel</button>
<button class="back-link" @click="router.push('/admin')">&larr; Volver al Panel</button>
<h1>Gestionar Paradas</h1>
<button class="add-button" @click="openCreate">
<span class="material-icons">add</span> Nueva Parada
@ -48,10 +48,12 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import { busStopsService } from '@/services/busStopsService'
import type { BusStop } from '@/types'
import BusStopEditor from '@/components/BusStopEditor.vue'
const router = useRouter()
const stops = ref<BusStop[]>([])
const isLoading = ref(true)
const error = ref<string | null>(null)

View File

@ -1,7 +1,7 @@
<template>
<div class="admin-drivers">
<div class="header">
<button class="back-link" @click="$router.push('/admin')"> Volver al Panel</button>
<button class="back-link" @click="router.push('/admin')"> Volver al Panel</button>
<h1>Gestión de Conductores y Taxis</h1>
<div class="header-actions">
<button class="btn-primary" @click="openRegisterModal">
@ -336,8 +336,10 @@
import { ref, onMounted, reactive, computed } from 'vue'
import { usersService } from '@/services/usersService'
import { authService } from '@/services/authService'
import { useRouter } from 'vue-router'
import { supabase } from '@/supabase'
const router = useRouter()
const activeTab = ref<'drivers' | 'taxis'>('drivers')
const isLoading = ref(false)
const activeDrivers = ref<any[]>([])

View File

@ -1,7 +1,7 @@
<template>
<div class="admin-taxis">
<div class="header">
<button class="back-link" @click="$router.push('/admin')"> Volver al Panel</button>
<button class="back-link" @click="router.push('/admin')"> Volver al Panel</button>
<h1>Directorio de Taxis</h1>
<button class="btn-primary" @click="openModal()">
<span class="material-icons">add</span>
@ -167,8 +167,10 @@
<script setup lang="ts">
import { ref, onMounted, reactive } from 'vue'
import { useRouter } from 'vue-router'
import { supabase } from '@/supabase'
const router = useRouter()
const isLoading = ref(false)
const taxis = ref<any[]>([])
const showModal = ref(false)