import { boot } from 'quasar/wrappers'; import { useUserStore } from 'src/vueLib/login/userStore'; import { appApi } from './axios'; import { getLocalLastRoute, setLocalLastRoute } from 'src/localstorage/localStorage'; export default boot(async ({ router }) => { const userStore = useUserStore(); // load user try { const { data } = await appApi.get('/login/me'); data.role.role = data.role; await userStore.setUser(data); } catch { /* ignore error */ } // Restore logic after router is ready but before navigation router.isReady().then(() => { const lastRoute = getLocalLastRoute(); const currentPath = router.currentRoute.value.fullPath; // Restore only if: // - we’re on root ("/" or "/#/"), and // - a last route exists, and // - the user is authenticated if ( lastRoute && ['/', '/#/', '/#/index.html'].includes(currentPath) && userStore.isAuthenticated ) { router.replace(lastRoute).catch(() => {}); } }); // Save the route after every successful navigation router.afterEach((to) => { // Don't save login page as "last route" if (to.path !== '/login' && to.path !== '/') { setLocalLastRoute(to.fullPath); } }); });