From c9d5ab82fd62ebe58b30425b3a8f0bea82bc719d Mon Sep 17 00:00:00 2001 From: Matthew Aaron Raymer Date: Thu, 15 Dec 2022 17:52:42 +0800 Subject: [PATCH] Adds an initial account as long as there are no available accounts. --- src/db/index.ts | 4 +--- src/views/AccountViewView.vue | 34 ++++++++++++++++++++-------------- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/db/index.ts b/src/db/index.ts index fb89a54..d72460b 100644 --- a/src/db/index.ts +++ b/src/db/index.ts @@ -1,7 +1,6 @@ import BaseDexie from "dexie"; import { encrypted, Encryption } from "@pvermeer/dexie-encrypted-addon"; import { accountsSchema, AccountsTable } from "./tables/accounts"; -type DexieTables = AccountsTable; /** * In order to make the next line be acceptable, the program needs to have its linter suppress a rule: @@ -11,9 +10,8 @@ type DexieTables = AccountsTable; * * https://9to5answer.com/how-to-bypass-warning-unexpected-any-specify-a-different-type-typescript-eslint-no-explicit-any */ -//export type Dexie = BaseDexie & T; +type DexieTables = AccountsTable; export type Dexie = BaseDexie & T; - export const db = new BaseDexie("kickStarter") as Dexie; const schema = Object.assign({}, accountsSchema); diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue index c99fdfe..9e8b9f0 100644 --- a/src/views/AccountViewView.vue +++ b/src/views/AccountViewView.vue @@ -220,22 +220,28 @@ export default class AccountViewView extends Vue { privateHex, UPORT_ROOT_DERIVATION_PATH ); - db.open().catch(function (err) { - console.error("Failed to open db: " + (err.stack || err)); - }); - db.accounts - .add({ - publicKey: newId.keys[0].publicKeyHex, - identity: JSON.stringify(newId), - }) - .then(function () { - db.accounts.each(function (account) { - console.log("Found close friend: " + account.publicKey); + db.open() + .then(function (odexie) { + odexie._allTables.accounts.count(function (result) { + if (result === 0) { + console.log("No accounts"); + odexie._allTables.accounts + .add({ + publicKey: newId.keys[0].publicKeyHex, + identity: JSON.stringify(newId), + }) + .then(function () { + odexie._allTables.accounts.each(function (account) { + console.log("Found close friend: " + account.publicKey); + }); + }); + } else { + console.log("Skipping initial create on empty db."); + } }); }) - .catch(function (e) { - // Something failed. It may be already in the open() call. - console.error(e.stack || e); + .catch(function (err) { + console.error("Failed to open db: " + (err.stack || err)); }); //appStore.dispatch(appSlice.actions.addLog({log: false, msg: "... created new ID..."})) accountStore.account = JSON.stringify(newId);