Merge branch 'fix/app-ready' into feature/vue3-modals-with-router-4

This commit is contained in:
kolaente 2022-01-30 21:53:24 +01:00
commit a16e8fea61
No known key found for this signature in database
GPG key ID: F40E70337AB24C9B
3 changed files with 14 additions and 8 deletions

View file

@ -52,6 +52,12 @@ import NoAuthWrapper from '@/components/misc/no-auth-wrapper.vue'
import {ERROR_NO_API_URL} from '@/helpers/checkAndSetApiUrl' import {ERROR_NO_API_URL} from '@/helpers/checkAndSetApiUrl'
import {useOnline} from '@/composables/useOnline' import {useOnline} from '@/composables/useOnline'
import {useRouter, useRoute} from 'vue-router'
import {checkAuth} from '@/router'
const router = useRouter()
const route = useRoute()
const store = useStore() const store = useStore()
const ready = computed(() => store.state.vikunjaReady) const ready = computed(() => store.state.vikunjaReady)
@ -63,7 +69,12 @@ const showLoading = computed(() => !ready.value && error.value === '')
async function load() { async function load() {
try { try {
await store.dispatch('loadApp') await store.dispatch('loadApp')
} catch(e: any) { const redirectTo = checkAuth(route)
if (typeof redirectTo !== 'undefined') {
await router.push(redirectTo)
}
store.commit('vikunjaReady', true)
} catch (e: any) {
error.value = e error.value = e
} }
} }

View file

@ -429,11 +429,7 @@ const router = createRouter({
], ],
}) })
router.beforeEach((to) => { export function checkAuth(route: RouteLocation) {
return checkAuth(to)
})
function checkAuth(route: RouteLocation) {
const authUser = store.getters['auth/authUser'] const authUser = store.getters['auth/authUser']
const authLinkShare = store.getters['auth/authLinkShare'] const authLinkShare = store.getters['auth/authLinkShare']

View file

@ -141,10 +141,9 @@ export const store = createStore({
commit(CURRENT_LIST, currentList) commit(CURRENT_LIST, currentList)
}, },
async loadApp({commit, dispatch}) { async loadApp({dispatch}) {
await checkAndSetApiUrl(window.API_URL) await checkAndSetApiUrl(window.API_URL)
await dispatch('auth/checkAuth') await dispatch('auth/checkAuth')
commit('vikunjaReady', true)
}, },
}, },
}) })