fix(notifications): drop redundant "PO" prefix, link all notifications to /po/[id]
In-app notification bodies now lead directly with the PO number (e.g. "PO-2024-12345 approved" → "PO-2024-12345 approved") without the word "PO" repeated before the identifier, since the ID already makes the context obvious. All notification links now route to /po/[id] so clicking any notification takes the user straight to the relevant PO detail page, regardless of their role or the event type. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f0b49c4b96
commit
48de2d08a2
1 changed files with 15 additions and 35 deletions
|
|
@ -72,68 +72,48 @@ function buildInAppBody(
|
|||
|
||||
switch (event) {
|
||||
case "PO_SUBMITTED":
|
||||
// Manager sees who submitted; submitter gets a confirmation
|
||||
return recipient.id === po.submitterId
|
||||
? `Your PO ${pn} has been submitted for review`
|
||||
: `${submitter} submitted PO ${pn} for your review`;
|
||||
? `${pn} submitted for review`
|
||||
: `${submitter} submitted ${pn} for your review`;
|
||||
|
||||
case "PO_APPROVED":
|
||||
case "PO_APPROVED_WITH_NOTE":
|
||||
return recipient.id === po.submitterId
|
||||
? `Your PO ${pn} has been approved`
|
||||
: `PO ${pn} approved — ready for payment`;
|
||||
? `${pn} approved`
|
||||
: `${pn} approved — ready for payment`;
|
||||
|
||||
case "PO_REJECTED":
|
||||
return `Your PO ${pn} has been rejected`;
|
||||
return `${pn} rejected`;
|
||||
|
||||
case "EDITS_REQUESTED":
|
||||
return `Edits requested on your PO ${pn}`;
|
||||
return `Edits requested on ${pn}`;
|
||||
|
||||
case "VENDOR_ID_REQUESTED":
|
||||
return `Vendor ID needed before PO ${pn} can be approved`;
|
||||
return `Vendor ID needed before ${pn} can be approved`;
|
||||
|
||||
case "VENDOR_ID_PROVIDED":
|
||||
return `Vendor ID provided for PO ${pn} — ready to review`;
|
||||
return `Vendor ID provided for ${pn} — ready to review`;
|
||||
|
||||
case "PAYMENT_PROCESSING":
|
||||
return `Payment is being processed for PO ${pn}`;
|
||||
return `Payment processing for ${pn}`;
|
||||
|
||||
case "PAYMENT_SENT":
|
||||
return `Payment confirmed for PO ${pn} — please confirm receipt`;
|
||||
return `Payment confirmed for ${pn} — please confirm receipt`;
|
||||
|
||||
case "RECEIPT_CONFIRMED":
|
||||
return `Receipt confirmed — PO ${pn} is now closed`;
|
||||
return `Receipt confirmed — ${pn} closed`;
|
||||
|
||||
default:
|
||||
return `Update on PO ${pn}`;
|
||||
return `Update on ${pn}`;
|
||||
}
|
||||
}
|
||||
|
||||
function buildInAppLink(
|
||||
event: NotificationEvent,
|
||||
_event: NotificationEvent,
|
||||
po: PurchaseOrder & { submitter: User },
|
||||
recipient: User
|
||||
_recipient: User
|
||||
): string {
|
||||
switch (event) {
|
||||
case "PO_SUBMITTED":
|
||||
return recipient.id === po.submitterId ? `/po/${po.id}` : `/approvals/${po.id}`;
|
||||
case "PO_APPROVED":
|
||||
case "PO_APPROVED_WITH_NOTE":
|
||||
return recipient.id === po.submitterId ? `/po/${po.id}` : `/payments`;
|
||||
case "PO_REJECTED":
|
||||
case "EDITS_REQUESTED":
|
||||
case "VENDOR_ID_REQUESTED":
|
||||
return `/po/${po.id}`;
|
||||
case "VENDOR_ID_PROVIDED":
|
||||
return `/approvals/${po.id}`;
|
||||
case "PAYMENT_PROCESSING":
|
||||
case "RECEIPT_CONFIRMED":
|
||||
return `/po/${po.id}`;
|
||||
case "PAYMENT_SENT":
|
||||
return `/po/${po.id}/receipt`;
|
||||
default:
|
||||
return `/po/${po.id}`;
|
||||
}
|
||||
return `/po/${po.id}`;
|
||||
}
|
||||
|
||||
// ── Email subject ─────────────────────────────────────────────────────────────
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue