fix(rendering): handle empty supabase array safely and speed up splash screen
This commit is contained in:
@ -92,7 +92,6 @@ const router = createRouter({
|
||||
path: '/admin/routes',
|
||||
name: 'admin-routes',
|
||||
component: () => import('@/views/AdminRoutes.vue'),
|
||||
meta: { requiresAuth: true, role: 'ADMIN' }
|
||||
},
|
||||
{
|
||||
path: '/admin/reports',
|
||||
|
||||
@ -210,8 +210,8 @@ async function loadInitialData() {
|
||||
routesService.getAllRoutes(),
|
||||
busStopsService.getAllBusStops()
|
||||
])
|
||||
routes.value = routesData
|
||||
allStops.value = stopsData
|
||||
routes.value = routesData || []
|
||||
allStops.value = stopsData || []
|
||||
}
|
||||
|
||||
const availableStops = computed(() => {
|
||||
|
||||
@ -44,22 +44,26 @@ onMounted(async () => {
|
||||
showLoading.value = true
|
||||
loadingVisible.value = true
|
||||
|
||||
// Short timeout for safety - app should be ready way before this
|
||||
const initTimeout = setTimeout(() => {
|
||||
// Timeout logic
|
||||
const initTimeout = setTimeout(async () => {
|
||||
console.warn('Initialization taking too long, forcing navigation...')
|
||||
statusMessage.value = 'Iniciando de todas formas...'
|
||||
navigate(null, true)
|
||||
}, 3000)
|
||||
try {
|
||||
const resp = await supabase.auth.getSession()
|
||||
navigate(resp.data.session)
|
||||
} catch {
|
||||
navigate()
|
||||
}
|
||||
}, 4000)
|
||||
|
||||
try {
|
||||
// Start all tasks in parallel: Session check + Data loading
|
||||
const [sessionData] = await Promise.all([
|
||||
supabase.auth.getSession(),
|
||||
// Start map background initialization without waiting
|
||||
performInitializationTasks()
|
||||
])
|
||||
|
||||
const resp = await supabase.auth.getSession()
|
||||
|
||||
clearTimeout(initTimeout)
|
||||
navigate(sessionData.data.session)
|
||||
navigate(resp.data.session)
|
||||
} catch (error) {
|
||||
console.error('Initialization failed', error)
|
||||
clearTimeout(initTimeout)
|
||||
|
||||
Reference in New Issue
Block a user