fix(rendering): handle empty supabase array safely and speed up splash screen

This commit is contained in:
2026-02-26 10:57:55 -05:00
parent 12f5871f6f
commit 82a2c1d903
3 changed files with 16 additions and 13 deletions

View File

@ -92,7 +92,6 @@ const router = createRouter({
path: '/admin/routes', path: '/admin/routes',
name: 'admin-routes', name: 'admin-routes',
component: () => import('@/views/AdminRoutes.vue'), component: () => import('@/views/AdminRoutes.vue'),
meta: { requiresAuth: true, role: 'ADMIN' }
}, },
{ {
path: '/admin/reports', path: '/admin/reports',

View File

@ -210,8 +210,8 @@ async function loadInitialData() {
routesService.getAllRoutes(), routesService.getAllRoutes(),
busStopsService.getAllBusStops() busStopsService.getAllBusStops()
]) ])
routes.value = routesData routes.value = routesData || []
allStops.value = stopsData allStops.value = stopsData || []
} }
const availableStops = computed(() => { const availableStops = computed(() => {

View File

@ -44,22 +44,26 @@ onMounted(async () => {
showLoading.value = true showLoading.value = true
loadingVisible.value = true loadingVisible.value = true
// Short timeout for safety - app should be ready way before this // Timeout logic
const initTimeout = setTimeout(() => { const initTimeout = setTimeout(async () => {
console.warn('Initialization taking too long, forcing navigation...') console.warn('Initialization taking too long, forcing navigation...')
statusMessage.value = 'Iniciando de todas formas...' statusMessage.value = 'Iniciando de todas formas...'
navigate(null, true) try {
}, 3000) const resp = await supabase.auth.getSession()
navigate(resp.data.session)
} catch {
navigate()
}
}, 4000)
try { try {
// Start all tasks in parallel: Session check + Data loading // Start map background initialization without waiting
const [sessionData] = await Promise.all([ performInitializationTasks()
supabase.auth.getSession(),
performInitializationTasks() const resp = await supabase.auth.getSession()
])
clearTimeout(initTimeout) clearTimeout(initTimeout)
navigate(sessionData.data.session) navigate(resp.data.session)
} catch (error) { } catch (error) {
console.error('Initialization failed', error) console.error('Initialization failed', error)
clearTimeout(initTimeout) clearTimeout(initTimeout)