email.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { useTranslation } from 'react-i18next'
  2. import { UserEmailData } from '../../../../../../types/user-email'
  3. import ResendConfirmationEmailButton from './resend-confirmation-email-button'
  4. import { ssoAvailableForInstitution } from '../../utils/sso'
  5. type EmailProps = {
  6. userEmailData: UserEmailData
  7. }
  8. function Email({ userEmailData }: EmailProps) {
  9. const { t } = useTranslation()
  10. const ssoAvailable = ssoAvailableForInstitution(
  11. userEmailData.affiliation?.institution || null
  12. )
  13. return (
  14. <>
  15. {userEmailData.email}
  16. {userEmailData.default ? (
  17. <span className="small ms-1">
  18. <span className="label label-info">Primary</span>
  19. </span>
  20. ) : null}
  21. {!userEmailData.confirmedAt && (
  22. <div className="small">
  23. <strong>
  24. {t('unconfirmed')}.
  25. {!ssoAvailable && <span> {t('please_check_your_inbox')}.</span>}
  26. </strong>
  27. <br />
  28. {!ssoAvailable && (
  29. <ResendConfirmationEmailButton email={userEmailData.email} />
  30. )}
  31. </div>
  32. )}
  33. {userEmailData.confirmedAt &&
  34. userEmailData.affiliation?.institution.confirmed &&
  35. userEmailData.affiliation.licence !== 'free' && (
  36. <div className="small">
  37. <span className="label label-primary">{t('professional')}</span>
  38. </div>
  39. )}
  40. </>
  41. )
  42. }
  43. export default Email