Browse Source

Adding new routing logic ... broken for the moment

experimental_plugin
Matthew Aaron Raymer 2 years ago
parent
commit
39f2d73007
  1. 1
      src/main.ts
  2. 20
      src/router/index.ts
  3. 13
      src/store/app.ts

1
src/main.ts

@ -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";

20
src/router/index.ts

@ -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;

13
src/store/app.ts

@ -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");
},
},
});

Loading…
Cancel
Save