forked from trent_larson/crowd-funder-for-time-pwa
Adding new routing logic ... broken for the moment
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { createPinia } from "pinia";
|
||||
import { createApp } from "vue";
|
||||
import { useAppStore } from "./store/app";
|
||||
import App from "./App.vue";
|
||||
import "./registerServiceWorker";
|
||||
import router from "./router";
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
|
||||
import { useAccountStore } from "../store/account";
|
||||
import { useAppStore } from "../store/app";
|
||||
import HomeView from "../views/HomeView.vue";
|
||||
|
||||
const routes: Array<RouteRecordRaw> = [
|
||||
@@ -111,13 +111,21 @@ const router = createRouter({
|
||||
});
|
||||
|
||||
router.beforeEach(async (to) => {
|
||||
// redirect to start page if no account
|
||||
const publicPages = ["/start", "/account", "/import-account"];
|
||||
// redirect to start page if app is uninitialized
|
||||
const publicPages = ["/start"];
|
||||
const authRequired = !publicPages.includes(to.path);
|
||||
const authStore = useAccountStore();
|
||||
|
||||
if (authRequired && !authStore.account) {
|
||||
return "/start";
|
||||
let return_path = "/start";
|
||||
if (authRequired) {
|
||||
switch (useAppStore().condition) {
|
||||
case "uninitialized":
|
||||
return_path = "/start";
|
||||
break;
|
||||
case "registering":
|
||||
return_path = useAppStore().lastView;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return return_path;
|
||||
});
|
||||
export default router;
|
||||
|
||||
@@ -2,12 +2,17 @@
|
||||
import { defineStore } from "pinia";
|
||||
|
||||
export const useAppStore = defineStore({
|
||||
id: "account",
|
||||
id: "app",
|
||||
state: () => ({
|
||||
condition: JSON.parse(
|
||||
typeof localStorage["app_condition"] == "undefined"
|
||||
typeof localStorage["condition"] == "undefined"
|
||||
? "uninitialized"
|
||||
: localStorage["app_condition"]
|
||||
: localStorage["condition"]
|
||||
),
|
||||
lastView: JSON.parse(
|
||||
typeof localStorage["lastView"] == "undefined"
|
||||
? "/start"
|
||||
: localStorage["lastView"]
|
||||
),
|
||||
}),
|
||||
getters: {
|
||||
@@ -15,7 +20,7 @@ export const useAppStore = defineStore({
|
||||
},
|
||||
actions: {
|
||||
reset() {
|
||||
localStorage.removeItem("app_condition");
|
||||
localStorage.removeItem("condition");
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user