forked from jsnbuchanan/crowd-funder-for-time-pwa
Fix: re-organize entity type conditional logic in gifting flow
- Add conditional checks for person vs project entity types when setting DID fields - Simplify project ID assignment logic by removing redundant entity type checks - Preserve existing recipient context when selecting givers in ContactGiftingView, especially when dealing with "Unnamed" entity
This commit is contained in:
@@ -195,7 +195,7 @@ export default class ContactGiftingView extends Vue {
|
||||
let giver: GiverReceiverInputInfo | undefined;
|
||||
|
||||
if (this.stepType === "giver") {
|
||||
// We're selecting a giver, so recipient is either a project or the current user
|
||||
// We're selecting a giver, so preserve the existing recipient from context
|
||||
if (this.recipientEntityType === "project") {
|
||||
recipient = {
|
||||
did: this.recipientProjectHandleId,
|
||||
@@ -204,7 +204,20 @@ export default class ContactGiftingView extends Vue {
|
||||
handleId: this.recipientProjectHandleId,
|
||||
};
|
||||
} else {
|
||||
recipient = { did: this.activeDid, name: "You" };
|
||||
// Preserve the existing recipient from context
|
||||
if (this.recipientDid === this.activeDid) {
|
||||
// Recipient was "You"
|
||||
recipient = { did: this.activeDid, name: "You" };
|
||||
} else if (this.recipientDid) {
|
||||
// Recipient was a regular contact
|
||||
recipient = {
|
||||
did: this.recipientDid,
|
||||
name: this.recipientProjectName || "Someone",
|
||||
};
|
||||
} else {
|
||||
// Fallback to "You" if no recipient was previously selected
|
||||
recipient = { did: this.activeDid, name: "You" };
|
||||
}
|
||||
}
|
||||
giver = undefined; // Will be set to "Unnamed" in GiftedDialog
|
||||
} else {
|
||||
@@ -239,12 +252,8 @@ export default class ContactGiftingView extends Vue {
|
||||
this.unitCode,
|
||||
);
|
||||
|
||||
// Immediately select "Unnamed" and move to Step 2 based on stepType
|
||||
if (this.stepType === "giver") {
|
||||
(this.$refs.giftedDialog as GiftedDialog).selectGiver();
|
||||
} else {
|
||||
(this.$refs.giftedDialog as GiftedDialog).selectRecipient();
|
||||
}
|
||||
// Move to Step 2 - entities are already set by the open() call
|
||||
(this.$refs.giftedDialog as GiftedDialog).moveToStep2();
|
||||
} else {
|
||||
// Regular case: contact is a GiverReceiverInputInfo
|
||||
let giver: GiverReceiverInputInfo;
|
||||
@@ -317,6 +326,9 @@ export default class ContactGiftingView extends Vue {
|
||||
this.amountInput,
|
||||
this.unitCode,
|
||||
);
|
||||
|
||||
// Move to Step 2 - entities are already set by the open() call
|
||||
(this.$refs.giftedDialog as GiftedDialog).moveToStep2();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user