From f47346cc353f1d65131cb1506aed03053abe3d1f Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sat, 9 Sep 2023 08:13:55 -0600 Subject: [PATCH 1/8] edit text on the help page --- src/views/HelpView.vue | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/views/HelpView.vue b/src/views/HelpView.vue index 62aa7b3..26fb9d7 100644 --- a/src/views/HelpView.vue +++ b/src/views/HelpView.vue @@ -41,14 +41,15 @@ You need someone to register you -- usually the person who told you about this app, on the Contacts page. After they register you, - and after you have contacts, you can select any contact on the home page - and record your appreciation for... whatever. That is a claim recorded + you can select any contact on the home page (or "anonymous") and record + your appreciation for... whatever. The main goal is to record what + people have given you, to grow gifting economies. Each claim is recorded on a custom ledger. The day after being registered, you'll be able to - register others; later, you can create projects, too. + able to register others; later, you can create projects, too.

- Note that there are limits to how many each person can register, so you - may have to wait. + Note that there are limits to how many others each person can register, + so you may have to wait.

How do I backup all my data?

@@ -130,7 +131,9 @@

How do I create another identity?

- Go + Before doing this, note that it is an advanced feature that affects + functionality (eg. the words "Alt ID" next to results, backup features) + so beware if you think that may cause confusion. You can create another identity here. From 116b23961689dc1c9540acf7eae35b0b9565bdda Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Fri, 15 Sep 2023 15:00:33 -0600 Subject: [PATCH 2/8] change derivation path, add task to test app updating --- project.task.yaml | 1 + src/libs/crypto/index.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/project.task.yaml b/project.task.yaml index e562137..1e5ee3b 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -37,6 +37,7 @@ tasks: - .2 fix rate limit verbiage (with the new one-per-day allowance) assignee:trent - .1 remove the logic to exclude beforeId in list of plans after server has commit 26b25af605e715600d4f12b6416ed9fd7142d164 - .2 in SeedBackupView, don't load the mnemonic and keep it in memory; only load it when they click "show" +- .5 test that we can update to a new version - Discuss whether the remaining tasks are worthwhile before MVP release. diff --git a/src/libs/crypto/index.ts b/src/libs/crypto/index.ts index b3600b4..8d7e67b 100644 --- a/src/libs/crypto/index.ts +++ b/src/libs/crypto/index.ts @@ -7,7 +7,7 @@ import { HDNode } from "@ethersproject/hdnode"; import * as didJwt from "did-jwt"; import * as u8a from "uint8arrays"; -export const DEFAULT_ROOT_DERIVATION_PATH = "m/76798669'/0'/0'/0'"; +export const DEFAULT_ROOT_DERIVATION_PATH = "m/84737769'/0'/0'/0'"; /** * From 6d2df4a50c42404ad965af0942efdf9e50de2148 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Wed, 1 Nov 2023 08:56:22 -0600 Subject: [PATCH 3/8] fix the error message on a successful result --- src/views/HomeView.vue | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index b938062..e00bf61 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -524,15 +524,18 @@ export default class HomeView extends Vue { hours, ); - if (this.isGiveCreationError(result)) { + if ( + result.type === "error" || + this.isGiveCreationError(result.response) + ) { const errorMessage = this.getGiveCreationErrorMessage(result); - console.log("Error with give result:", result); + console.log("Error with give creation result:", result); this.$notify( { group: "alert", type: "danger", title: "Error", - text: errorMessage || "There was an error recording the give.", + text: errorMessage || "There was an error creating the give.", }, -1, ); @@ -549,7 +552,7 @@ export default class HomeView extends Vue { } // eslint-disable-next-line @typescript-eslint/no-explicit-any } catch (error: any) { - console.log("Error with give caught:", error); + console.log("Error with give recordation caught:", error); const message = error.userMessage || error.response?.data?.error?.message || @@ -568,14 +571,26 @@ export default class HomeView extends Vue { // Helper functions for readability + /** + * @param result response "data" from the server + * @returns true if the result indicates an error + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any isGiveCreationError(result: any) { return result.status !== 201 || result.data?.error; } + /** + * @param result direct response from the server (potentially with embedded "data") + * @returns best guess at an error message + */ // eslint-disable-next-line @typescript-eslint/no-explicit-any getGiveCreationErrorMessage(result: any) { - return result.data?.error?.message; + return ( + result.error?.userMessage || + result.error?.error || + result.data?.error?.message + ); } } From 7f6c93802911a030a89fe3706e18b5c17151e5bb Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Wed, 1 Nov 2023 09:09:20 -0600 Subject: [PATCH 4/8] fix display of given items; bump version to 0.1.2 --- CHANGELOG.md | 2 +- package-lock.json | 4 ++-- package.json | 2 +- src/views/HomeView.vue | 17 +++++++++++++---- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c08a6c..84a0b85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.1.1] - 2023.10.31 +## [0.1.2] - 2023.11.01 ### Added - Basics: create ID, record a give, declare a project, search, and get notifications. diff --git a/package-lock.json b/package-lock.json index c03a367..11127e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "dependencies": { "@ethersproject/hdnode": "^5.7.0", "@fortawesome/fontawesome-svg-core": "^6.4.0", diff --git a/package.json b/package.json index 5fb2b6c..5ef417d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "kickstart-for-time-pwa", - "version": "0.1.1", + "version": "0.1.2", "private": true, "scripts": { "serve": "vue-cli-service serve", diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index e00bf61..53e3175 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -428,9 +428,18 @@ export default class HomeView extends Vue { this.allMyDids, this.allContacts, ); - const gaveAmount = claim.object?.amountOfThisGood + let gaveAmount = claim.object?.amountOfThisGood ? this.displayAmount(claim.object.unitCode, claim.object.amountOfThisGood) - : claim.description || "something without description"; + : ""; + if (claim.description) { + if (gaveAmount) { + gaveAmount = gaveAmount + ", and also: "; + } + gaveAmount = gaveAmount + claim.description; + } + if (!gaveAmount) { + gaveAmount = "something not described"; + } // recipient.did is for legacy data, before March 2023 const gaveRecipientId = // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -581,7 +590,7 @@ export default class HomeView extends Vue { } /** - * @param result direct response from the server (potentially with embedded "data") + * @param result direct response eg. ErrorResult or SuccessResult (potentially with embedded "data") * @returns best guess at an error message */ // eslint-disable-next-line @typescript-eslint/no-explicit-any @@ -589,7 +598,7 @@ export default class HomeView extends Vue { return ( result.error?.userMessage || result.error?.error || - result.data?.error?.message + result.response?.data?.error?.message ); } } From 2bec218cc584ce7ed93794090f6d8ccb9f128358 Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Thu, 2 Nov 2023 20:50:33 -0600 Subject: [PATCH 5/8] allow edit of a contact's name --- project.task.yaml | 1 - src/views/ContactsView.vue | 55 +++++++++++++++++++++++++++++++++++++- 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/project.task.yaml b/project.task.yaml index af2801c..f29d34b 100644 --- a/project.task.yaml +++ b/project.task.yaml @@ -31,7 +31,6 @@ tasks: - .1 Remove notification alert visuals on home page - .5 Add infinite scroll to gifts on the home page -- .5 Allow edit of a contact name (but not the DID) - .5 bug - search for "Safari" does not find the project, but if already on the "Anywhere" tab it shows all - .2 figure out why endorser-mobile search doesn't find recently created PlanAction - .1 when creating a plan, select location and then make sure you can deselect on Android diff --git a/src/views/ContactsView.vue b/src/views/ContactsView.vue index 3bcfa0f..baac46f 100644 --- a/src/views/ContactsView.vue +++ b/src/views/ContactsView.vue @@ -93,6 +93,13 @@ class="inline-block align-text-bottom border border-slate-300 rounded" > {{ contact.name || "(no name)" }} +

{{ contact.did }}
@@ -209,6 +216,24 @@

This identity has no contacts.

+ +
+
+

Edit Name

+ + +
+
@@ -251,6 +276,8 @@ export default class ContactsView extends Vue { contacts: Array = []; contactEndorserUrl = localStorage.getItem("contactEndorserUrl") || ""; contactInput = ""; + contactEdit: Contact | null = null; + contactNewName = ""; // { "did:...": concatenated-descriptions } entry for each contact givenByMeDescriptions: Record = {}; // { "did:...": amount } entry for each contact @@ -961,6 +988,13 @@ export default class ContactsView extends Vue { } } + private async onClickSaveName(contact: Contact, newName: string) { + contact.name = newName; + return db.contacts + .update(contact.did, { name: newName }) + .then(() => (this.contactEdit = null)); + } + public toggleShowGiveTotals() { if (this.showGiveTotals) { this.showGiveTotals = false; @@ -985,6 +1019,26 @@ export default class ContactsView extends Vue {