overleaf/services/web/frontend/js/features/settings/components/emails/email.tsx
Rebeka Dekany f78e619d87 Merge pull request #18331 from overleaf/rd-bs5-renaming
[web ] Bootstrap 5 - rename the wrapper components and restructure

GitOrigin-RevId: 7a76903df81cd546e9e469f24c4f203ea6a61672
2024-05-16 08:05:31 +00:00

58 lines
1.7 KiB
TypeScript

import { useTranslation } from 'react-i18next'
import { UserEmailData } from '../../../../../../types/user-email'
import ResendConfirmationEmailButton from './resend-confirmation-email-button'
import { ssoAvailableForInstitution } from '../../utils/sso'
import OLBadge from '@/features/ui/components/ol/ol-badge'
import { isBootstrap5 } from '@/features/utils/bootstrap-5'
import classnames from 'classnames'
type EmailProps = {
userEmailData: UserEmailData
}
function Email({ userEmailData }: EmailProps) {
const { t } = useTranslation()
const ssoAvailable = ssoAvailableForInstitution(
userEmailData.affiliation?.institution || null
)
const isPrimary = userEmailData.default
const isProfessional =
userEmailData.confirmedAt &&
userEmailData.affiliation?.institution.confirmed &&
userEmailData.affiliation.licence !== 'free'
const hasBadges = isPrimary || isProfessional
return (
<>
{userEmailData.email}
{!userEmailData.confirmedAt && (
<div className="small">
<strong>
{t('unconfirmed')}.
{!ssoAvailable && <span> {t('please_check_your_inbox')}.</span>}
</strong>
<br />
{!ssoAvailable && (
<ResendConfirmationEmailButton email={userEmailData.email} />
)}
</div>
)}
{hasBadges && (
<div className={classnames({ small: !isBootstrap5 })}>
{isPrimary && (
<>
<OLBadge bg="info">Primary</OLBadge>{' '}
</>
)}
{isProfessional && (
<OLBadge bg="primary">{t('professional')}</OLBadge>
)}
</div>
)}
</>
)
}
export default Email