diff --git a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailContentHistory.jsx b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailContentHistory.jsx index 1bde13d..5087831 100644 --- a/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailContentHistory.jsx +++ b/src/components/bulk-email-tool/bulk-email-task-manager/BulkEmailContentHistory.jsx @@ -1,15 +1,16 @@ import React, { useState } from 'react'; import PropTypes from 'prop-types'; import { useParams } from 'react-router-dom'; -import { FormattedMessage, injectIntl, intlShape } from '@edx/frontend-platform/i18n'; +import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import { - Button, Icon, Modal, StatefulButton, + Button, Icon, StatefulButton, } from '@edx/paragon'; import { SpinnerSimple } from '@edx/paragon/icons'; import messages from './messages'; import { getSentEmailHistory } from './data/api'; import BulkEmailTaskManagerTable from './BulkEmailHistoryTable'; +import ViewEmailModal from './ViewEmailModal'; function BulkEmailContentHistory({ intl, copyTextToEditor }) { const { courseId } = useParams(); @@ -78,58 +79,6 @@ function BulkEmailContentHistory({ intl, copyTextToEditor }) { setIsMessageModalOpen(true); }; - /** - * Renders a modal that will display the contents of a single historical email message sent via the bulk course email - * tool to a user. - */ - const renderMessageModal = () => ( -
- -
-

{intl.formatMessage(messages.modalMessageSubject)}

-

{messageContent.subject}

-
-
-

{intl.formatMessage(messages.modalMessageSentBy)}

-

{messageContent.requester}

-
-
-

{intl.formatMessage(messages.modalMessageTimeSent)}

-

{messageContent.created}

-
-
-

{intl.formatMessage(messages.modalMessageSentTo)}

-

{messageContent.sent_to}

-
-
-
-

{intl.formatMessage(messages.modalMessageBody)}

- {/* eslint-disable-next-line react/no-danger */} -
-
-
- )} - onClose={() => setIsMessageModalOpen(false)} - buttons={[ - , - ]} - /> -
- ); - const tableColumns = [ { Header: `${intl.formatMessage(messages.emailHistoryTableColumnHeaderSubject)}`, @@ -176,7 +125,14 @@ function BulkEmailContentHistory({ intl, copyTextToEditor }) { return (
-
{messageContent && renderMessageModal()}
+ {messageContent && ( + + )}

{intl.formatMessage(messages.emailHistoryTableSectionButtonHeader)}

+ +
+

{intl.formatMessage(messages.modalMessageSubject)}

+

{messageContent.subject}

+
+
+

{intl.formatMessage(messages.modalMessageSentBy)}

+

{messageContent.requester}

+
+
+

{intl.formatMessage(messages.modalMessageTimeSent)}

+

{messageContent.created}

+
+
+

{intl.formatMessage(messages.modalMessageSentTo)}

+

{messageContent.sent_to}

+
+
+
+

{intl.formatMessage(messages.modalMessageBody)}

+ {/* eslint-disable-next-line react/no-danger */} +
+
+
+ )} + onClose={() => setModalOpen(false)} + buttons={[ + , + ]} + /> +
+ ); +} + +ViewEmailModal.propTypes = { + intl: intlShape.isRequired, + messageContent: PropTypes.shape({ + subject: PropTypes.string, + requester: PropTypes.string, + created: PropTypes.string, + email: PropTypes.shape({ + html_message: PropTypes.string, + }).isRequired, + sent_to: PropTypes.arrayOf(PropTypes.string), + }).isRequired, + isOpen: PropTypes.bool.isRequired, + setModalOpen: PropTypes.func.isRequired, + copyTextToEditor: PropTypes.func.isRequired, +}; + +export default injectIntl(ViewEmailModal);