>
);
visitEvent = 'celebration_with_unavailable_cert';
footnote = ;
break;
}
case 'requesting':
// The requesting status needs a different button because it does a POST instead of a GET.
// So we don't set buttonLocation and instead define a custom button as a buttonPrefix.
buttonEvent = 'request_cert';
buttonPrefix = (
);
certHeader = intl.formatMessage(messages.certificateHeaderRequestable);
message = (
);
}
break;
case 'audit_passing':
case 'honor_passing':
if (verifiedMode) {
certHeader = intl.formatMessage(messages.certificateHeaderUpgradable);
message = (
}}
description="Body text when the learner needs to upgrade to earn a certifcate and they have passed the course"
/>
{getConfig().SUPPORT_URL_VERIFIED_CERTIFICATE && (
{intl.formatMessage(messages.verifiedCertificateSupportLink)}
)}
);
buttonText = intl.formatMessage(messages.upgradeButton);
buttonEvent = 'upgrade';
buttonLocation = verifiedMode.upgradeUrl;
buttonVariant = 'primary';
if (offer) {
buttonSuffix = (
{offer.code}),
percent: offer.percentage,
}}
description="Shown if learner can use a discount code when they upgrade the course"
/>
);
}
certificateImage = certificateLocked;
visitEvent = 'celebration_upgrade';
if (verifiedMode.accessExpirationDate) {
footnote = ;
} else {
footnote = ;
}
} else {
visitEvent = 'celebration_audit_no_upgrade';
}
break;
default:
if (!canViewCertificate) {
// We reuse the cert event here. Since this default state is so
// Similar to the earned_not_available state, this event name should be fine
// to cover the same cases.
visitEvent = 'celebration_with_unavailable_cert';
certHeader = intl.formatMessage(messages.certificateHeaderNotAvailable);
const endDate = intl.formatDate(end, {
year: 'numeric',
month: 'long',
day: 'numeric',
...timezoneFormatArgs,
});
message = (
<>