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',
|
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',
|
||||||
|
|||||||
@ -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(() => {
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user