Browse Source

Adding markers to keep track of registration state

simple-signer
Matthew Aaron Raymer 2 years ago
parent
commit
b4557c3596
  1. 8
      src/router/index.ts
  2. 3
      src/store/app.ts
  3. 22
      src/views/AccountViewView.vue

8
src/router/index.ts

@ -105,6 +105,7 @@ const routes: Array<RouteRecordRaw> = [
}, },
]; ];
/** @type {*} */
const router = createRouter({ const router = createRouter({
history: createWebHistory(process.env.BASE_URL), history: createWebHistory(process.env.BASE_URL),
routes, routes,
@ -121,14 +122,9 @@ router.beforeEach(async (to) => {
case "uninitialized": case "uninitialized":
return_path = ""; return_path = "";
break; break;
case "registering":
return_path = to.path;
break;
}
} else {
switch (appStore.condition) {
case "registered": case "registered":
return_path = to.path; return_path = to.path;
break;
} }
} }
if (return_path == "") { if (return_path == "") {

3
src/store/app.ts

@ -20,5 +20,8 @@ export const useAppStore = defineStore({
reset() { reset() {
localStorage.removeItem("condition"); localStorage.removeItem("condition");
}, },
setCondition(newCondition: string) {
localStorage.setItem("condition", newCondition);
},
}, },
}); });

22
src/views/AccountViewView.vue

@ -171,6 +171,7 @@ import { createIdentifier, deriveAddress, newIdentifier } from "../libs/crypto";
import { IIdentifier } from "@veramo/core"; import { IIdentifier } from "@veramo/core";
import * as R from "ramda"; import * as R from "ramda";
import { db } from "../db"; import { db } from "../db";
import { useAppStore } from "@/store/app";
@Options({ @Options({
components: {}, components: {},
@ -185,6 +186,8 @@ export default class AccountViewView extends Vue {
const previousIdentifiers: Array<IIdentifier> = []; const previousIdentifiers: Array<IIdentifier> = [];
const toLowercase = true; const toLowercase = true;
const appCondition = useAppStore().condition;
if (appCondition == "uninitialized") {
this.mnemonic = createIdentifier(); this.mnemonic = createIdentifier();
[ [
this.address, this.address,
@ -235,12 +238,7 @@ export default class AccountViewView extends Vue {
dateCreated: new Date().getTime(), dateCreated: new Date().getTime(),
}); });
} }
const accounts = await db.accounts.toArray(); useAppStore().setCondition("registered");
console.log(accounts[0]);
const identity = JSON.parse(accounts[0].identity);
this.address = identity.did;
this.publicHex = identity.keys[0].publicKeyHex;
//appStore.dispatch(appSlice.actions.addLog({log: false, msg: "... created new ID..."})) //appStore.dispatch(appSlice.actions.addLog({log: false, msg: "... created new ID..."}))
//appStore.dispatch(appSlice.actions.addLog({log: false, msg: "... stored new ID..."})) //appStore.dispatch(appSlice.actions.addLog({log: false, msg: "... stored new ID..."}))
@ -249,5 +247,17 @@ export default class AccountViewView extends Vue {
console.log(err); console.log(err);
} }
} }
await db.open();
const num_accounts = await db.accounts.count();
if (num_accounts === 0) {
console.log("Problem! Should have a profile!");
} else {
const accounts = await db.accounts.toArray();
console.log(accounts[0]);
const identity = JSON.parse(accounts[0].identity);
this.address = identity.did;
this.publicHex = identity.keys[0].publicKeyHex;
}
}
} }
</script> </script>

Loading…
Cancel
Save