import { useState } from 'react' import { useTranslation, Trans } from 'react-i18next' import { Alert } from 'react-bootstrap' import Icon from '../../../../shared/components/icon' import getMeta from '../../../../utils/meta' type InstitutionLink = { universityName: string hasEntitlement?: boolean } type SAMLError = { translatedMessage?: string message?: string tryAgain?: boolean } export function SSOAlert() { const { t } = useTranslation() const institutionLinked: InstitutionLink | undefined = getMeta( 'ol-institutionLinked' ) const institutionEmailNonCanonical: string | undefined = getMeta( 'ol-institutionEmailNonCanonical' ) const samlError: SAMLError | undefined = getMeta('ol-samlError') const [infoClosed, setInfoClosed] = useState(false) const [warningClosed, setWarningClosed] = useState(false) const [errorClosed, setErrorClosed] = useState(false) const handleInfoClosed = () => setInfoClosed(true) const handleWarningClosed = () => setWarningClosed(true) const handleErrorClosed = () => setErrorClosed(true) if (samlError) { return ( !errorClosed && (

{' '} {samlError.translatedMessage ? samlError.translatedMessage : samlError.message}

{samlError.tryAgain && (

{t('try_again')}

)}
) ) } if (!institutionLinked) { return null } return ( <> {!infoClosed && (

]} // eslint-disable-line react/jsx-key values={{ institutionName: institutionLinked.universityName }} />

{institutionLinked.hasEntitlement && (

]} // eslint-disable-line react/jsx-key values={{ featureType: t('professional') }} />

)}
)} {!warningClosed && institutionEmailNonCanonical && (

{' '} ]} // eslint-disable-line react/jsx-key values={{ email: institutionEmailNonCanonical }} />

)} ) }