BOD-35 Refactored email screen to use TinyMCE + added templates schema + base level email generation

This commit is contained in:
Patrick Fic
2020-04-16 15:50:07 -07:00
parent 248665aa65
commit c9cafa7ab7
27 changed files with 650 additions and 1639 deletions

View File

@@ -5,14 +5,13 @@ const INITIAL_STATE = {
messageOptions: {
from: { name: "ShopName", address: "noreply@bodyshop.app" },
to: null,
replyTo: null
replyTo: null,
},
template: null,
queryConfig: [null, { variables: null }]
template: { name: null, variables: {} },
},
visible: false,
error: null
error: null,
};
const emailReducer = (state = INITIAL_STATE, action) => {
@@ -20,13 +19,13 @@ const emailReducer = (state = INITIAL_STATE, action) => {
case EmailActionTypes.TOGGLE_EMAIL_OVERLAY_VISIBLE:
return {
...state,
visible: !state.visible
visible: !state.visible,
};
case EmailActionTypes.SET_EMAIL_OPTIONS:
return {
...state,
emailConfig: { ...action.payload },
visible: true
visible: true,
};
default:
return state;

View File

@@ -1,25 +1,19 @@
import { createSelector } from "reselect";
const selectEmail = state => state.email;
const selectEmailConfigMessageOptions = state =>
const selectEmail = (state) => state.email;
const selectEmailConfigMessageOptions = (state) =>
state.email.emailConfig.messageOptions;
const selectEmailConfigTemplate = state => state.email.emailConfig.template;
const selectEmailConfigQuery = state => state.email.emailConfig.queryConfig;
const selectEmailConfigTemplate = (state) => state.email.emailConfig.template;
export const selectEmailVisible = createSelector(
[selectEmail],
email => email.visible
(email) => email.visible
);
export const selectEmailConfig = createSelector(
[
selectEmailConfigMessageOptions,
selectEmailConfigTemplate,
selectEmailConfigQuery
],
(messageOptions, template, queryConfig) => ({
[selectEmailConfigMessageOptions, selectEmailConfigTemplate],
(messageOptions, template) => ({
messageOptions,
template,
queryConfig
})
);