| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -442,7 +442,7 @@ import { NotificationIface } from "../constants/app"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { db, retrieveSettingsForActiveAccount } from "../db/index"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { Contact } from "../db/tables/contacts"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import * as serverUtil from "../libs/endorserServer"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { GiveSummaryRecord } from "../interfaces"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { GenericVerifiableCredential, GiveSummaryRecord } from "../interfaces"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { displayAmount } from "../libs/endorserServer"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import * as libsUtil from "../libs/util"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					import { retrieveAccountDids } from "../libs/util"; | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -621,7 +621,8 @@ export default class ConfirmGiftView extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Fetches detailed give information | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  private async fetchGiveDetails(claimId: string, userDid: string) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const giveUrl = `${this.apiServer}/api/v2/report/gives?handleId=${encodeURIComponent(claimId)}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const param = libsUtil.isGlobalUri(claimId) ? "handleId" : "jwtId"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const giveUrl = `${this.apiServer}/api/v2/report/gives?${param}=${encodeURIComponent(claimId)}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    try { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      const headers = await serverUtil.getHeaders(userDid); | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -645,15 +646,10 @@ export default class ConfirmGiftView extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (!this.giveDetails) return; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.urlForNewGive = "/gifted-details?"; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.addGiveDetailsToUrl(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.processParticipantInfo(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    this.processAdditionalDetails(); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Adds basic give details to URL | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  private addGiveDetailsToUrl() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * Add basic give details to URL | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.giveDetails?.amount) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.urlForNewGive += `&amountInput=${encodeURIComponent(String(this.giveDetails.amount))}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -663,12 +659,10 @@ export default class ConfirmGiftView extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.giveDetails?.description) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.urlForNewGive += `&description=${encodeURIComponent(this.giveDetails.description)}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Processes participant (giver/recipient) information | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  private processParticipantInfo() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * Add participant (giver/recipient) name & URL info | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.giveDetails?.agentDid) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.giverName = this.didInfo(this.giveDetails.agentDid); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.urlForNewGive += `&giverDid=${encodeURIComponent(this.giveDetails.agentDid)}&giverName=${encodeURIComponent(this.giverName)}`; | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -677,12 +671,10 @@ export default class ConfirmGiftView extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.recipientName = this.didInfo(this.giveDetails.recipientDid); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.urlForNewGive += `&recipientDid=${encodeURIComponent(this.giveDetails.recipientDid)}&recipientName=${encodeURIComponent(this.recipientName)}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Processes additional give details (image, offer, plan) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  private processAdditionalDetails() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     * Add additional give details to URL (image, offer, plan) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					     */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (this.giveDetails?.fullClaim.image) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.urlForNewGive += `&image=${encodeURIComponent(this.giveDetails.fullClaim.image)}`; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -803,6 +795,53 @@ export default class ConfirmGiftView extends Vue { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  // similar code is found in ProjectViewView | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  async confirmClaim() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    // similar logic is found in endorser-mobile | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const goodClaim = serverUtil.removeSchemaContext( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      serverUtil.removeVisibleToDids( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        serverUtil.addLastClaimOrHandleAsIdIfMissing( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.veriClaim.claim, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.veriClaim.id, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          this.veriClaim.handleId, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        ), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const confirmationClaim: GenericVerifiableCredential = { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      "@context": "https://schema.org", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      "@type": "AgreeAction", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      object: goodClaim, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    }; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    const result = await serverUtil.createAndSubmitClaim( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      confirmationClaim, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.activeDid, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.apiServer, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.axios, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    if (result.type === "success") { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          type: "success", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          title: "Success", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: "Confirmation submitted.", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        3000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } else { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      console.error("Got error submitting the confirmation:", result); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      this.$notify( | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          group: "alert", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          type: "danger", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          title: "Error", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					          text: "There was a problem submitting the confirmation.", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        }, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					        5000, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					      ); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					    } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  } | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					  /** | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Notifies user why they cannot confirm the gift | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					   * Explains requirements or restrictions preventing confirmation | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |