import React, { PureComponent } from 'react'; import { defineMessages, injectIntl } from 'react-intl'; import PropTypes from 'prop-types'; import Styled from './styles'; const ASK_MODERATOR = 'ASK_MODERATOR'; const ALWAYS_ACCEPT = 'ALWAYS_ACCEPT'; const ALWAYS_DENY = 'ALWAYS_DENY'; const intlMessages = defineMessages({ ariaModalTitle: { id: 'app.guest-policy.ariaTitle', description: 'Guest policy aria title', }, guestPolicyTitle: { id: 'app.guest-policy.title', description: 'Guest policy title', }, guestPolicyDescription: { id: 'app.guest-policy.description', description: 'Guest policy description', }, policyBtnDesc: { id: 'app.guest-policy.policyBtnDesc', description: 'aria description for guest policy button', }, askModerator: { id: 'app.guest-policy.button.askModerator', description: 'Ask moderator button label', }, alwaysAccept: { id: 'app.guest-policy.button.alwaysAccept', description: 'Always accept button label', }, alwaysDeny: { id: 'app.guest-policy.button.alwaysDeny', description: 'Always deny button label', }, }); const propTypes = { intl: PropTypes.shape({ formatMessage: PropTypes.func.isRequired, }).isRequired, guestPolicy: PropTypes.string.isRequired, changeGuestPolicy: PropTypes.func.isRequired, }; class GuestPolicyComponent extends PureComponent { componentWillUnmount() { const { setIsOpen } = this.props; setIsOpen(false); } render() { const { setIsOpen, intl, guestPolicy, changeGuestPolicy, isOpen, onRequestClose, priority, } = this.props; return ( setIsOpen(false)} contentLabel={intl.formatMessage(intlMessages.ariaModalTitle)} title={intl.formatMessage(intlMessages.guestPolicyTitle)} {...{ isOpen, onRequestClose, priority, }} > {intl.formatMessage(intlMessages.guestPolicyDescription)} { changeGuestPolicy(ASK_MODERATOR); setIsOpen(false); }} /> { changeGuestPolicy(ALWAYS_ACCEPT); setIsOpen(false); }} /> { changeGuestPolicy(ALWAYS_DENY); setIsOpen(false); }} />
{intl.formatMessage(intlMessages.policyBtnDesc)}
); } } GuestPolicyComponent.propTypes = propTypes; export default injectIntl(GuestPolicyComponent);