|  | @ -1,5 +1,6 @@ | 
			
		
	
		
		
			
				
					|  |  | <template> |  |  | <template> | 
			
		
	
		
		
			
				
					|  |  |   <QuickNav /> |  |  |   <QuickNav /> | 
			
		
	
		
		
			
				
					|  |  |  |  |  |   <TopMessage /> | 
			
		
	
		
		
			
				
					|  |  |   <!-- CONTENT --> |  |  |   <!-- CONTENT --> | 
			
		
	
		
		
			
				
					|  |  |   <section id="Content" class="p-6 pb-24 max-w-3xl mx-auto"> |  |  |   <section id="Content" class="p-6 pb-24 max-w-3xl mx-auto"> | 
			
		
	
		
		
			
				
					|  |  |     <!-- Breadcrumb --> |  |  |     <!-- Breadcrumb --> | 
			
		
	
	
		
		
			
				
					|  | @ -148,11 +149,9 @@ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         <span v-if="totalConfirmers() === 0">Nobody has confirmed this.</span> |  |  |         <span v-if="totalConfirmers() === 0">Nobody has confirmed this.</span> | 
			
		
	
		
		
			
				
					|  |  |         <span v-else-if="totalConfirmers() === 1"> |  |  |         <span v-else-if="totalConfirmers() === 1"> | 
			
		
	
		
		
			
				
					
					|  |  |           One person has confirmed this. |  |  |           One person confirmed this. | 
			
				
				
			
		
	
		
		
			
				
					|  |  |         </span> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |         <span v-else> |  |  |  | 
			
		
	
		
		
			
				
					|  |  |           {{ totalConfirmers() }} people have confirmed this. |  |  |  | 
			
		
	
		
		
	
		
		
			
				
					|  |  |         </span> |  |  |         </span> | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         <span v-else> {{ totalConfirmers() }} people confirmed this. </span> | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         <div v-if="totalConfirmers() > 0"> |  |  |         <div v-if="totalConfirmers() > 0"> | 
			
		
	
		
		
			
				
					|  |  |           <div |  |  |           <div | 
			
		
	
	
		
		
			
				
					|  | @ -170,10 +169,10 @@ | 
			
		
	
		
		
			
				
					|  |  |             " |  |  |             " | 
			
		
	
		
		
			
				
					|  |  |           > |  |  |           > | 
			
		
	
		
		
			
				
					|  |  |             <!-- Only show if this person has links to confirmers (below). --> |  |  |             <!-- Only show if this person has links to confirmers (below). --> | 
			
		
	
		
		
			
				
					
					|  |  |             Nobody that you know has issued or confirmed this claim. |  |  |             Nobody that you know issued or confirmed this claim. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |           </div> |  |  |           </div> | 
			
		
	
		
		
			
				
					|  |  |           <div v-if="confirmerIdList.length > 0"> |  |  |           <div v-if="confirmerIdList.length > 0"> | 
			
		
	
		
		
			
				
					
					|  |  |             The following people have issued or confirmed this claim. |  |  |             The following people issued or confirmed this claim. | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |             <ul class="ml-4"> |  |  |             <ul class="ml-4"> | 
			
		
	
		
		
			
				
					|  |  |               <li |  |  |               <li | 
			
		
	
		
		
			
				
					|  |  |                 v-for="confirmerId in confirmerIdList" |  |  |                 v-for="confirmerId in confirmerIdList" | 
			
		
	
	
		
		
			
				
					|  | @ -205,7 +204,7 @@ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |           <!-- |  |  |           <!-- | 
			
		
	
		
		
			
				
					|  |  |            Never need to show this message: |  |  |            Never need to show this message: | 
			
		
	
		
		
			
				
					
					|  |  |            "Nobody that you know can see someone who has confirmed this claim." |  |  |            "Nobody that you know can see someone who confirmed this claim." | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |            If there is nobody in the confirmerIdList then we'll show the combined "nobody" message. |  |  |            If there is nobody in the confirmerIdList then we'll show the combined "nobody" message. | 
			
		
	
		
		
			
				
					|  |  |            If there is somebody in the confirmerIdList then that's all they need to show. |  |  |            If there is somebody in the confirmerIdList then that's all they need to show. | 
			
		
	
	
		
		
			
				
					|  | @ -213,7 +212,7 @@ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |           <!-- Now show anyone linked to confirmers. --> |  |  |           <!-- Now show anyone linked to confirmers. --> | 
			
		
	
		
		
			
				
					|  |  |           <div v-if="confsVisibleToIdList.length > 0"> |  |  |           <div v-if="confsVisibleToIdList.length > 0"> | 
			
		
	
		
		
			
				
					
					|  |  |             The following people can connect you with people who have issued or |  |  |             The following people can connect you with people who issued or | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |             confirmed this claim. |  |  |             confirmed this claim. | 
			
		
	
		
		
			
				
					|  |  |             <ul class="ml-4"> |  |  |             <ul class="ml-4"> | 
			
		
	
		
		
			
				
					|  |  |               <li |  |  |               <li | 
			
		
	
	
		
		
			
				
					|  | @ -249,10 +248,11 @@ | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |         <!-- explain if user cannot confirm --> |  |  |         <!-- explain if user cannot confirm --> | 
			
		
	
		
		
			
				
					|  |  |         <!-- Note that these conditions are mirrored in userCanConfirm(). --> |  |  |         <!-- Note that these conditions are mirrored in userCanConfirm(). --> | 
			
		
	
		
		
			
				
					
					|  |  |         <div v-if="confirmerIdList.includes(activeDid)"> |  |  |         <div v-if="!isRegistered"> | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |           You have confirmed this claim. |  |  |           You cannot confirm this because you are not registered. Find someone | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |           to register you, maybe on the Help page. | 
			
		
	
		
		
			
				
					|  |  |         </div> |  |  |         </div> | 
			
		
	
		
		
			
				
					
					|  |  |         <div v-else-if="giveDetails.agentDid == activeDid"> |  |  |         <div v-else-if="giveDetails.issuerDid == activeDid"> | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |           You cannot confirm this because you issued this claim, so you already |  |  |           You cannot confirm this because you issued this claim, so you already | 
			
		
	
		
		
			
				
					|  |  |           count as confirming it. |  |  |           count as confirming it. | 
			
		
	
		
		
			
				
					|  |  |         </div> |  |  |         </div> | 
			
		
	
	
		
		
			
				
					|  | @ -410,13 +410,14 @@ import { Account } from "@/db/tables/accounts"; | 
			
		
	
		
		
			
				
					|  |  | import { Contact } from "@/db/tables/contacts"; |  |  | import { Contact } from "@/db/tables/contacts"; | 
			
		
	
		
		
			
				
					|  |  | import { MASTER_SETTINGS_KEY, Settings } from "@/db/tables/settings"; |  |  | import { MASTER_SETTINGS_KEY, Settings } from "@/db/tables/settings"; | 
			
		
	
		
		
			
				
					|  |  | import * as serverUtil from "@/libs/endorserServer"; |  |  | import * as serverUtil from "@/libs/endorserServer"; | 
			
		
	
		
		
			
				
					
					|  |  | import { displayAmount } from "@/libs/endorserServer"; |  |  | import { displayAmount, GiveSummaryRecord } from "@/libs/endorserServer"; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | import * as libsUtil from "@/libs/util"; |  |  | import * as libsUtil from "@/libs/util"; | 
			
		
	
		
		
			
				
					|  |  | import { isGiveAction } from "@/libs/util"; |  |  | import { isGiveAction } from "@/libs/util"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | import TopMessage from "@/components/TopMessage.vue"; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | @Component({ |  |  | @Component({ | 
			
		
	
		
		
			
				
					|  |  |   methods: { displayAmount }, |  |  |   methods: { displayAmount }, | 
			
		
	
		
		
			
				
					
					|  |  |   components: { QuickNav }, |  |  |   components: { TopMessage, QuickNav }, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  | }) |  |  | }) | 
			
		
	
		
		
			
				
					|  |  | export default class ClaimView extends Vue { |  |  | export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |   $notify!: (notification: NotificationIface, timeout?: number) => void; |  |  |   $notify!: (notification: NotificationIface, timeout?: number) => void; | 
			
		
	
	
		
		
			
				
					|  | @ -430,7 +431,7 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |   confirmerIdList: string[] = []; // list of DIDs that have confirmed this claim excluding the issuer |  |  |   confirmerIdList: string[] = []; // list of DIDs that have confirmed this claim excluding the issuer | 
			
		
	
		
		
			
				
					|  |  |   confsVisibleErrorMessage = ""; |  |  |   confsVisibleErrorMessage = ""; | 
			
		
	
		
		
			
				
					|  |  |   confsVisibleToIdList: string[] = []; // list of DIDs that can see any confirmer |  |  |   confsVisibleToIdList: string[] = []; // list of DIDs that can see any confirmer | 
			
		
	
		
		
			
				
					
					|  |  |   giveDetails = null; |  |  |   giveDetails?: GiveSummaryRecord; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |   giverName = ""; |  |  |   giverName = ""; | 
			
		
	
		
		
			
				
					|  |  |   issuerName = ""; |  |  |   issuerName = ""; | 
			
		
	
		
		
			
				
					|  |  |   isLoading = false; |  |  |   isLoading = false; | 
			
		
	
	
		
		
			
				
					|  | @ -453,7 +454,7 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |     this.confirmerIdList = []; |  |  |     this.confirmerIdList = []; | 
			
		
	
		
		
			
				
					|  |  |     this.confsVisibleErrorMessage = ""; |  |  |     this.confsVisibleErrorMessage = ""; | 
			
		
	
		
		
			
				
					|  |  |     this.confsVisibleToIdList = []; |  |  |     this.confsVisibleToIdList = []; | 
			
		
	
		
		
			
				
					
					|  |  |     this.giveDetails = null; |  |  |     this.giveDetails = undefined; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |     this.isRegistered = false; |  |  |     this.isRegistered = false; | 
			
		
	
		
		
			
				
					|  |  |     this.numConfsNotVisible = 0; |  |  |     this.numConfsNotVisible = 0; | 
			
		
	
		
		
			
				
					|  |  |     this.urlForNewGive = ""; |  |  |     this.urlForNewGive = ""; | 
			
		
	
	
		
		
			
				
					|  | @ -605,6 +606,12 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |           }, |  |  |           }, | 
			
		
	
		
		
			
				
					|  |  |           3000, |  |  |           3000, | 
			
		
	
		
		
			
				
					|  |  |         ); |  |  |         ); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         return; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |       } | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |  |  |  |       // the logic already stops earlier if the claim doesn't exist but this helps with typechecking | 
			
		
	
		
		
			
				
					|  |  |  |  |  |       if (!this.giveDetails) { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         return; | 
			
		
	
		
		
			
				
					|  |  |       } |  |  |       } | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |       this.urlForNewGive = "/gifted-details?"; |  |  |       this.urlForNewGive = "/gifted-details?"; | 
			
		
	
	
		
		
			
				
					|  | @ -645,7 +652,8 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |         this.giveDetails.fulfillsHandleId |  |  |         this.giveDetails.fulfillsHandleId | 
			
		
	
		
		
			
				
					|  |  |       ) { |  |  |       ) { | 
			
		
	
		
		
			
				
					|  |  |         this.urlForNewGive += |  |  |         this.urlForNewGive += | 
			
		
	
		
		
			
				
					
					|  |  |           "&offerId=" + encodeURIComponent(this.giveDetails.fulfillsHandleId); |  |  |           "&offerId=" + | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |  |  |  |           encodeURIComponent(this.giveDetails?.fulfillsHandleId as string); | 
			
		
	
		
		
			
				
					|  |  |       } |  |  |       } | 
			
		
	
		
		
			
				
					|  |  |       if (this.giveDetails.fulfillsPlanHandleId) { |  |  |       if (this.giveDetails.fulfillsPlanHandleId) { | 
			
		
	
		
		
			
				
					|  |  |         this.urlForNewGive += |  |  |         this.urlForNewGive += | 
			
		
	
	
		
		
			
				
					|  | @ -666,9 +674,11 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |         const resultList1 = response.data.result || []; |  |  |         const resultList1 = response.data.result || []; | 
			
		
	
		
		
			
				
					|  |  |         //const publicUrls = resultList.publicUrls || []; |  |  |         //const publicUrls = resultList.publicUrls || []; | 
			
		
	
		
		
			
				
					|  |  |         delete resultList1.publicUrls; |  |  |         delete resultList1.publicUrls; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // remove any hidden DIDs | 
			
		
	
		
		
			
				
					|  |  |         const resultList2 = R.reject(serverUtil.isHiddenDid, resultList1); |  |  |         const resultList2 = R.reject(serverUtil.isHiddenDid, resultList1); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |         // remove confirmations by this user | 
			
		
	
		
		
			
				
					|  |  |         const resultList3 = R.reject( |  |  |         const resultList3 = R.reject( | 
			
		
	
		
		
			
				
					
					|  |  |           (did: string) => did === this.giveDetails.agentDid, |  |  |           (did: string) => did === this.giveDetails?.issuerDid, | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |           resultList2, |  |  |           resultList2, | 
			
		
	
		
		
			
				
					|  |  |         ); |  |  |         ); | 
			
		
	
		
		
			
				
					|  |  |         this.confirmerIdList = resultList3; |  |  |         this.confirmerIdList = resultList3; | 
			
		
	
	
		
		
			
				
					|  | @ -814,11 +824,11 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |           group: "alert", |  |  |           group: "alert", | 
			
		
	
		
		
			
				
					|  |  |           type: "info", |  |  |           type: "info", | 
			
		
	
		
		
			
				
					|  |  |           title: "Already Confirmed", |  |  |           title: "Already Confirmed", | 
			
		
	
		
		
			
				
					
					|  |  |           text: "You have already confirmed this claim.", |  |  |           text: "You already confirmed this claim.", | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |         }, |  |  |         }, | 
			
		
	
		
		
			
				
					|  |  |         3000, |  |  |         3000, | 
			
		
	
		
		
			
				
					|  |  |       ); |  |  |       ); | 
			
		
	
		
		
			
				
					
					|  |  |     } else if (this.giveDetails.agentDid == this.activeDid) { |  |  |     } else if (this.giveDetails?.issuerDid == this.activeDid) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |       this.$notify( |  |  |       this.$notify( | 
			
		
	
		
		
			
				
					|  |  |         { |  |  |         { | 
			
		
	
		
		
			
				
					|  |  |           group: "alert", |  |  |           group: "alert", | 
			
		
	
	
		
		
			
				
					|  | @ -828,7 +838,7 @@ export default class ClaimView extends Vue { | 
			
		
	
		
		
			
				
					|  |  |         }, |  |  |         }, | 
			
		
	
		
		
			
				
					|  |  |         3000, |  |  |         3000, | 
			
		
	
		
		
			
				
					|  |  |       ); |  |  |       ); | 
			
		
	
		
		
			
				
					
					|  |  |     } else if (serverUtil.containsHiddenDid(this.giveDetails.fullClaim)) { |  |  |     } else if (serverUtil.containsHiddenDid(this.giveDetails?.fullClaim)) { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |       this.$notify( |  |  |       this.$notify( | 
			
		
	
		
		
			
				
					|  |  |         { |  |  |         { | 
			
		
	
		
		
			
				
					|  |  |           group: "alert", |  |  |           group: "alert", | 
			
		
	
	
		
		
			
				
					|  | 
 |