diff --git a/project.task.yaml b/project.task.yaml index fdfc083..391a031 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -28,6 +28,7 @@ tasks: - 24 Move to Vite - .5 remove edit from project page for projects owned by others +- .5 fix where user 0 sees no txns from user 1 on contacts page but sees them on list page - .2 there are three dots at the top of ProjectViewView that refreshes the page but doesn't do anything else - 01 fix images on project page, on discovery page - .2 on ProjectViewView, show different messages for "to" and "from" sections if none exist @@ -48,9 +49,11 @@ tasks: - maybe - allow type annotations in World.js & landmarks.js (since we get this error - "Types are not supported by current JavaScript version") - 08 convert to cleaner implementation (maybe Drie -- https://github.com/janvorisek/drie) +- .5 on ProjectView page, show immediate feedback when a gift is given (on list?) -- and consider the same for Home & Contacts pages - .5 customize favicon - 04 allow user to download claims, mine + ones I can see about me from others - Do we want to combine first name & last name? +- Show a warning if both giver and recipient are the same (but still allow?) - Release Minimum Viable Product : - 08 thorough testing for errors & edge cases diff --git a/src/views/AccountViewView.vue b/src/views/AccountViewView.vue index 7bb4fd9..ab18cca 100644 --- a/src/views/AccountViewView.vue +++ b/src/views/AccountViewView.vue @@ -298,6 +298,7 @@ import { accessToken } from "@/libs/crypto"; import { AxiosError } from "axios/index"; import AlertMessage from "@/components/AlertMessage"; import QuickNav from "@/components/QuickNav"; +import { IIdentifier } from "@veramo/core"; // eslint-disable-next-line @typescript-eslint/no-var-requires const Buffer = require("buffer/").Buffer; @@ -336,12 +337,6 @@ export default class AccountViewView extends Vue { .equals(activeDid) .first(); const identity = JSON.parse(account?.identity || "null"); - - if (!identity) { - throw new Error( - "Attempted to load Give records with no identity available.", - ); - } return identity; } @@ -395,14 +390,18 @@ export default class AccountViewView extends Vue { const identity = await this.getIdentity(this.activeDid); - this.publicHex = identity.keys[0].publicKeyHex; - this.publicBase64 = Buffer.from(this.publicHex, "hex").toString("base64"); - this.derivationPath = identity.keys[0].meta.derivationPath; + if (identity) { + this.publicHex = identity.keys[0].publicKeyHex; + this.publicBase64 = Buffer.from(this.publicHex, "hex").toString( + "base64", + ); + this.derivationPath = identity.keys[0].meta.derivationPath; - db.settings.update(MASTER_SETTINGS_KEY, { - activeDid: identity.did, - }); - this.checkLimits(); + db.settings.update(MASTER_SETTINGS_KEY, { + activeDid: identity.did, + }); + this.checkLimitsFor(identity); + } } catch (err) { if ( err.message === @@ -461,12 +460,18 @@ export default class AccountViewView extends Vue { } async checkLimits() { + const identity = await this.getIdentity(this.activeDid); + if (identity) { + this.checkLimitsFor(identity); + } + } + + async checkLimitsFor(identity: IIdentifier) { this.loadingLimits = true; this.limitsMessage = ""; try { const url = this.apiServer + "/api/report/rateLimits"; - const identity = await this.getIdentity(this.activeDid); const headers = await this.getHeaders(identity); const resp = await this.axios.get(url, { headers });