diff --git a/src/components/misc/ready.vue b/src/components/misc/ready.vue index 07ee0ffa4..8fd3f4fd3 100644 --- a/src/components/misc/ready.vue +++ b/src/components/misc/ready.vue @@ -52,9 +52,15 @@ import NoAuthWrapper from '@/components/misc/no-auth-wrapper.vue' import {ERROR_NO_API_URL} from '@/helpers/checkAndSetApiUrl' import {useOnline} from '@/composables/useOnline' +import {useRouter, useRoute} from 'vue-router' +import {getAuthForRoute} from '@/router' + +const router = useRouter() +const route = useRoute() + const store = useStore() -const ready = computed(() => store.state.vikunjaReady) +const ready = ref(false) const online = useOnline() const error = ref('') @@ -63,7 +69,12 @@ const showLoading = computed(() => !ready.value && error.value === '') async function load() { try { await store.dispatch('loadApp') - } catch(e: any) { + const redirectTo = getAuthForRoute(route) + if (typeof redirectTo !== 'undefined') { + await router.push(redirectTo) + } + ready.value = true + } catch (e: any) { error.value = e } } diff --git a/src/router/index.ts b/src/router/index.ts index 7b28a509c..17d66ba5f 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -575,11 +575,7 @@ const router = createRouter({ ], }) -router.beforeEach((to) => { - return checkAuth(to) -}) - -function checkAuth(route: RouteLocation) { +export function getAuthForRoute(route: RouteLocation) { const authUser = store.getters['auth/authUser'] const authLinkShare = store.getters['auth/authLinkShare'] diff --git a/src/store/index.js b/src/store/index.js index 37c74ae8e..f0d250c13 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -43,7 +43,6 @@ export const store = createStore({ menuActive: true, keyboardShortcutsActive: false, quickActionsActive: false, - vikunjaReady: false, }, mutations: { [LOADING](state, loading) { @@ -79,9 +78,6 @@ export const store = createStore({ [BACKGROUND](state, background) { state.background = background }, - vikunjaReady(state, ready) { - state.vikunjaReady = ready - }, }, actions: { async [CURRENT_LIST]({state, commit}, currentList) { @@ -136,10 +132,9 @@ export const store = createStore({ commit(CURRENT_LIST, currentList) }, - async loadApp({commit, dispatch}) { + async loadApp({dispatch}) { await checkAndSetApiUrl(window.API_URL) await dispatch('auth/checkAuth') - commit('vikunjaReady', true) }, }, })