Further work on async email modal. Correctly sending basic emails.

This commit is contained in:
Patrick Fic
2020-02-20 17:23:56 -08:00
parent cf461b0536
commit 1344198447
7 changed files with 111 additions and 30 deletions

View File

@@ -1,17 +1,13 @@
import { Button, Modal } from "antd";
import { Button, Modal, notification } from "antd";
import axios from "axios";
import React, { useEffect, useState } from "react";
import { useLazyQuery } from "react-apollo";
import { renderEmail } from "react-html-email";
import { useTranslation } from "react-i18next";
import { connect } from "react-redux";
import { createStructuredSelector } from "reselect";
import {
sendEmail,
toggleEmailOverlayVisible
} from "../../redux/email/email.actions";
import {
selectEmailConfig,
selectEmailVisible
} from "../../redux/email/email.selectors.js";
import { toggleEmailOverlayVisible } from "../../redux/email/email.actions";
import { selectEmailConfig, selectEmailVisible } from "../../redux/email/email.selectors.js";
import LoadingSpinner from "../loading-spinner/loading-spinner.component";
import EmailOverlayComponent from "./email-overlay.component";
@@ -20,18 +16,13 @@ const mapStateToProps = createStructuredSelector({
emailConfig: selectEmailConfig
});
const mapDispatchToProps = dispatch => ({
toggleEmailOverlayVisible: () => dispatch(toggleEmailOverlayVisible()),
sendEmail: email => dispatch(sendEmail(email))
toggleEmailOverlayVisible: () => dispatch(toggleEmailOverlayVisible())
});
export default connect(
mapStateToProps,
mapDispatchToProps
)(function SendEmail({
emailConfig,
modalVisible,
sendEmail,
toggleEmailOverlayVisible
}) {
)(function SendEmail({ emailConfig, modalVisible, toggleEmailOverlayVisible }) {
const { t } = useTranslation();
const [messageOptions, setMessageOptions] = useState(
emailConfig.messageOptions
);
@@ -57,7 +48,6 @@ export default connect(
}
if (data && !messageOptions.html && emailConfig.template) {
//console.log(ReactDOMServer.renderToStaticMarkup(<Template data={data} />));
setMessageOptions({
...messageOptions,
//html: ReactDOMServer.renderToStaticMarkup(<Template data={data} />)
@@ -66,8 +56,20 @@ export default connect(
}
const handleOk = () => {
sendEmail("Clicked OK");
toggleEmailOverlayVisible();
//sendEmail(messageOptions);
axios
.post("/sendemail", messageOptions)
.then(response => {
console.log(JSON.stringify(response));
notification["success"]({ message: t("emails.successes.sent") });
toggleEmailOverlayVisible();
})
.catch(error => {
console.log(JSON.stringify(error));
notification["error"]({
message: t("emails.errors.notsent", { message: error.message })
});
});
};
const handleConfigChange = event => {
const { name, value } = event.target;