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;