import React, { useContext } from 'react'; import PropTypes from 'prop-types'; import { BannerAlert, ButtonLink, Icon, IconName, IconSize, Text, } from '../../component-library'; import Disclosure from '../../ui/disclosure'; import { DisclosureVariant } from '../../ui/disclosure/disclosure.constants'; import { I18nContext } from '../../../contexts/i18n'; import { AlignItems, Color, IconColor, Severity, Size, TextVariant, } from '../../../helpers/constants/design-system'; import { SecurityProvider, SECURITY_PROVIDER_CONFIG, } from '../../../../shared/constants/security-provider'; function SecurityProviderBannerAlert({ description, details, provider, severity, title, }) { const t = useContext(I18nContext); return ( {description} {details && ( {details} )} {t('securityProviderAdviceBy', [ {t(SECURITY_PROVIDER_CONFIG[provider].tKeyName)} , ])} ); } SecurityProviderBannerAlert.propTypes = { /** Description content that may be plain text or contain hyperlinks */ description: PropTypes.oneOfType([PropTypes.string, PropTypes.element]) .isRequired, /** Name of the security provider */ provider: PropTypes.oneOfType(Object.values(SecurityProvider)).isRequired, /** Severity level */ severity: PropTypes.oneOfType([Severity.Danger, Severity.Warning]).isRequired, /** Title to be passed as param */ title: PropTypes.string.isRequired, /** * Optional */ /** Additional details to be displayed under the description */ details: PropTypes.oneOfType([PropTypes.string, PropTypes.element]), }; export default SecurityProviderBannerAlert;