Skip to content

Commit aa9b429

Browse files
authored
Revert "Revert "Revert "ENT-3671 Keep email field populated while switching in between new and old templates"" (#423)" (#424)
This reverts commit 52c9657.
1 parent 52c9657 commit aa9b429

File tree

12 files changed

+6
-146
lines changed

12 files changed

+6
-146
lines changed

src/components/CodeAssignmentModal/index.jsx

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,6 @@ class BaseCodeAssignmentModal extends React.Component {
7373
}
7474
}
7575

76-
componentWillUnmount() {
77-
this.props.setEmailAddress('', this.state.mode);
78-
}
79-
8076
getNumberOfSelectedCodes() {
8177
const {
8278
data: {
@@ -423,7 +419,7 @@ class BaseCodeAssignmentModal extends React.Component {
423419
{!isBulkAssign && <IndividualAssignFields />}
424420
<div className="mt-4">
425421
<h3>Email Template</h3>
426-
<TemplateSourceFields emailTemplateType="assign" currentEmail={this.props.currentEmail} />
422+
<TemplateSourceFields emailTemplateType="assign" />
427423
<Field
428424
id="email-template-subject"
429425
name="email-template-subject"
@@ -541,13 +537,11 @@ BaseCodeAssignmentModal.defaultProps = {
541537
error: null,
542538
isBulkAssign: false,
543539
data: {},
544-
currentEmail: '',
545540
};
546541

547542
BaseCodeAssignmentModal.propTypes = {
548543
// props from redux
549544
enterpriseSlug: PropTypes.string.isRequired,
550-
currentEmail: PropTypes.string,
551545
enableLearnerPortal: PropTypes.bool.isRequired,
552546
// props From redux-form
553547
handleSubmit: PropTypes.func.isRequired,
@@ -562,7 +556,6 @@ BaseCodeAssignmentModal.propTypes = {
562556
onClose: PropTypes.func.isRequired,
563557
onSuccess: PropTypes.func.isRequired,
564558
sendCodeAssignment: PropTypes.func.isRequired,
565-
setEmailAddress: PropTypes.func.isRequired,
566559
couponDetailsTable: PropTypes.shape({
567560
data: PropTypes.shape({
568561
count: PropTypes.number,

src/components/TemplateSourceFields/index.jsx

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,8 @@ class TemplateSourceFields extends React.Component {
7272

7373
updateState(emailTemplateSource) {
7474
const {
75-
setEmailTemplateSource, allEmailTemplates, setEmailAddress, emailTemplateType, currentEmail,
75+
setEmailTemplateSource, allEmailTemplates,
7676
} = this.props;
77-
if (emailTemplateType === 'assign') {
78-
setEmailAddress(currentEmail, emailTemplateType);
79-
}
8077
setEmailTemplateSource(emailTemplateSource);
8178
if (emailTemplateSource === EMAIL_TEMPLATE_SOURCE_FROM_TEMPLATE) {
8279
this.makeOptions(this.props);
@@ -97,13 +94,9 @@ class TemplateSourceFields extends React.Component {
9794
}
9895

9996
dispatchUpdatedTemplate(emailTemplate) {
100-
const { currentFromTemplate, emailTemplateType, currentEmail } = this.props;
97+
const { currentFromTemplate, emailTemplateType } = this.props;
10198
if (emailTemplate.length > 0) {
102-
const firstEmailTemplate = emailTemplate[0];
103-
if (emailTemplateType === 'assign') {
104-
firstEmailTemplate.email_address = currentEmail;
105-
}
106-
currentFromTemplate(emailTemplateType, firstEmailTemplate);
99+
currentFromTemplate(emailTemplateType, emailTemplate[0]);
107100
}
108101
}
109102

@@ -203,15 +196,12 @@ class TemplateSourceFields extends React.Component {
203196
TemplateSourceFields.defaultProps = {
204197
allEmailTemplates: [],
205198
disabled: false,
206-
currentEmail: '',
207199
};
208200

209201
TemplateSourceFields.propTypes = {
210202
emailTemplateSource: PropTypes.string.isRequired,
211203
emailTemplateType: PropTypes.string.isRequired,
212-
currentEmail: PropTypes.string,
213204
setEmailTemplateSource: PropTypes.func.isRequired,
214-
setEmailAddress: PropTypes.func.isRequired,
215205
currentFromTemplate: PropTypes.func.isRequired,
216206
fetchEmailTemplates: PropTypes.func.isRequired,
217207
allEmailTemplates: PropTypes.arrayOf(PropTypes.shape({})),

src/containers/CodeAssignmentModal/CodeAssignmentModal.test.jsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,6 @@ const initialState = {
2626
},
2727
},
2828
},
29-
form: {
30-
'code-assignment-modal-form': {
31-
values: {
32-
'email-address': '[email protected]',
33-
},
34-
},
35-
},
3629
portalConfiguration: {
3730
enterpriseSlug: 'bearsRus',
3831
enableLearnerPortal: true,
@@ -44,15 +37,13 @@ const initialState = {
4437
emailTemplateSource: EMAIL_TEMPLATE_SOURCE_NEW_EMAIL,
4538
default: {
4639
assign: {
47-
'email-address': '',
4840
'email-template-subject': assignEmailTemplate.subject,
4941
'email-template-greeting': assignEmailTemplate.greeting,
5042
'email-template-body': assignEmailTemplate.body,
5143
'email-template-closing': assignEmailTemplate.closing,
5244
},
5345
},
5446
assign: {
55-
'email-address': '',
5647
'email-template-subject': assignEmailTemplate.subject,
5748
'email-template-greeting': assignEmailTemplate.greeting,
5849
'email-template-body': assignEmailTemplate.body,

src/containers/CodeAssignmentModal/index.jsx

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import CodeAssignmentModal from '../../components/CodeAssignmentModal';
44

55
import sendCodeAssignment from '../../data/actions/codeAssignment';
66
import { EMAIL_TEMPLATE_SOURCE_NEW_EMAIL } from '../../data/constants/emailTemplate';
7-
import { setEmailAddress } from '../../data/actions/emailTemplate';
87

98
const mapStateToProps = (state) => {
109
let initialValues = state.emailTemplate.emailTemplateSource === EMAIL_TEMPLATE_SOURCE_NEW_EMAIL
@@ -14,7 +13,6 @@ const mapStateToProps = (state) => {
1413
initialValues = { ...initialValues, 'enable-nudge-emails': true };
1514

1615
return {
17-
currentEmail: state.form['code-assignment-modal-form']?.values['email-address'],
1816
couponDetailsTable: state.table['coupon-details'],
1917
initialValues,
2018
enableReinitialize: true,
@@ -30,7 +28,6 @@ const mapDispatchToProps = dispatch => ({
3028
onError: (error) => { reject(error); },
3129
}));
3230
}),
33-
setEmailAddress: (emailAddress, emailType) => dispatch(setEmailAddress(emailAddress, emailType)),
3431
});
3532

3633
export default connect(mapStateToProps, mapDispatchToProps)(CodeAssignmentModal);

src/containers/CodeManagementPage/CodeManagementPage.test.jsx

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,6 @@ const initialState = {
2727
table: {
2828
'coupon-details': {},
2929
},
30-
form: {
31-
'code-assignment-modal-form': {
32-
values: {
33-
'email-address': '',
34-
},
35-
},
36-
},
3730
};
3831

3932
const CodeManagementPageWrapper = props => (

src/containers/CouponDetails/CouponDetails.test.jsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,13 @@ const enterpriseId = 'test-enterprise';
1919
const mockStore = configureMockStore([thunk]);
2020

2121
const sampleEmailTemplate = {
22-
'email-address': '',
2322
'email-template-greeting': 'Sample email greeting.. ',
2423
'email-template-body': 'Sample email body template.. ',
2524
'email-template-closing': 'Sample email closing template.. ',
2625
};
2726

2827
const emailDefaults = {
2928
'template-id': 0,
30-
'email-address': '',
3129
'template-name-select': '',
3230
'email-template-subject': 'Sample email subject.. ',
3331
'email-template-greeting': 'Sample email greeting.. ',
@@ -47,13 +45,6 @@ const initialState = {
4745
table: {
4846
'coupon-details': {},
4947
},
50-
form: {
51-
'code-assignment-modal-form': {
52-
values: {
53-
'email-address': '',
54-
},
55-
},
56-
},
5748
coupons: {
5849
couponOverviewLoading: false,
5950
couponOverviewError: null,

src/containers/TemplateSourceFields/index.jsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { connect } from 'react-redux';
22

33
import TemplateSourceFields from '../../components/TemplateSourceFields';
44

5-
import fetchEmailTemplates, { setEmailTemplateSource, currentFromTemplate, setEmailAddress } from '../../data/actions/emailTemplate';
5+
import fetchEmailTemplates, { setEmailTemplateSource, currentFromTemplate } from '../../data/actions/emailTemplate';
66

77
const mapStateToProps = state => ({
88
emailTemplateSource: state.emailTemplate.emailTemplateSource,
@@ -11,7 +11,6 @@ const mapStateToProps = state => ({
1111

1212
const mapDispatchToProps = dispatch => ({
1313
setEmailTemplateSource: templateSource => dispatch(setEmailTemplateSource(templateSource)),
14-
setEmailAddress: (emailAddress, emailType) => dispatch(setEmailAddress(emailAddress, emailType)),
1514
currentFromTemplate: (type, template) => dispatch(currentFromTemplate(type, template)),
1615
fetchEmailTemplates: (options) => {
1716
dispatch(fetchEmailTemplates(options));

src/data/actions/emailTemplate.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77
SAVE_TEMPLATE_FAILURE,
88
SET_EMAIL_TEMPLATE_SOURCE,
99
CURRENT_FROM_TEMPLATE,
10-
SET_EMAIL_ADDRESS,
1110
} from '../constants/emailTemplate';
1211

1312
import EcommerceApiService from '../services/EcommerceApiService';
@@ -92,16 +91,4 @@ export const setEmailTemplateSource = emailTemplateSource => (
9291
}
9392
);
9493

95-
export const setEmailAddress = (emailAddress, emailType) => (
96-
(dispatch) => {
97-
dispatch({
98-
type: SET_EMAIL_ADDRESS,
99-
payload: {
100-
emailAddress,
101-
emailType,
102-
},
103-
});
104-
}
105-
);
106-
10794
export default fetchEmailTemplates;

src/data/constants/emailTemplate.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ const SAVE_TEMPLATE_SUCCESS = 'SAVE_TEMPLATE_SUCCESS';
66
const SAVE_TEMPLATE_FAILURE = 'SAVE_TEMPLATE_FAILURE';
77
const SET_EMAIL_TEMPLATE_SOURCE = 'SET_EMAIL_TEMPLATE_SOURCE';
88
const CURRENT_FROM_TEMPLATE = 'CURRENT_FROM_TEMPLATE';
9-
const SET_EMAIL_ADDRESS = 'SET_EMAIL_ADDRESS';
109

1110
const OFFER_ASSIGNMENT_EMAIL_SUBJECT_LIMIT = 1000;
1211
const EMAIL_TEMPLATE_FIELD_MAX_LIMIT = 50000;
@@ -26,5 +25,4 @@ export {
2625
EMAIL_TEMPLATE_SOURCE_NEW_EMAIL,
2726
EMAIL_TEMPLATE_SOURCE_FROM_TEMPLATE,
2827
CURRENT_FROM_TEMPLATE,
29-
SET_EMAIL_ADDRESS,
3028
};

src/data/reducers/emailTemplate.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,9 @@ import {
88
SET_EMAIL_TEMPLATE_SOURCE,
99
EMAIL_TEMPLATE_SOURCE_NEW_EMAIL,
1010
CURRENT_FROM_TEMPLATE,
11-
SET_EMAIL_ADDRESS,
1211
} from '../constants/emailTemplate';
1312

14-
import { transformTemplate, updateAllTemplates, updateTemplateEmailAddress } from '../../utils';
13+
import { transformTemplate, updateAllTemplates } from '../../utils';
1514
import assignEmailTemplate from '../../components/CodeAssignmentModal/emailTemplate';
1615
import remindEmailTemplate from '../../components/CodeReminderModal/emailTemplate';
1716
import revokeEmailTemplate from '../../components/CodeRevokeModal/emailTemplate';
@@ -24,7 +23,6 @@ export const initialState = {
2423
emailTemplateSource: EMAIL_TEMPLATE_SOURCE_NEW_EMAIL,
2524
default: {
2625
assign: {
27-
'email-address': '',
2826
'email-template-subject': assignEmailTemplate.subject,
2927
'email-template-greeting': assignEmailTemplate.greeting,
3028
'email-template-body': assignEmailTemplate.body,
@@ -45,7 +43,6 @@ export const initialState = {
4543
},
4644
assign: {
4745
'template-id': 0,
48-
'email-address': '',
4946
'template-name-select': '',
5047
'email-template-subject': assignEmailTemplate.subject,
5148
'email-template-greeting': assignEmailTemplate.greeting,
@@ -127,14 +124,6 @@ const emailTemplate = (state = initialState, action) => {
127124
...state,
128125
emailTemplateSource: action.payload.emailTemplateSource,
129126
};
130-
case SET_EMAIL_ADDRESS:
131-
return {
132-
...state,
133-
saving: false,
134-
error: null,
135-
...updateTemplateEmailAddress(action.payload.emailType, action.payload.emailAddress,
136-
state.default[action.payload.emailType]),
137-
};
138127
default:
139128
return state;
140129
}

src/data/reducers/emailTemplate.test.js

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import {
33
SAVE_TEMPLATE_SUCCESS,
44
SAVE_TEMPLATE_FAILURE,
55
CURRENT_FROM_TEMPLATE,
6-
SET_EMAIL_ADDRESS,
76
} from '../constants/emailTemplate';
87

98
import emailTemplate, { initialState as emailTemplateReducerInitialState } from './emailTemplate';
@@ -15,7 +14,6 @@ const saveTemplateSuccessResponse = {
1514
email_body: 'I am email body',
1615
email_closing: 'I am email closing',
1716
name: 'template-1',
18-
email_address: '',
1917
id: 4,
2018
};
2119
const saveTemplateErrorResponse = {
@@ -66,7 +64,6 @@ describe('emailTemplate reducer', () => {
6664
email_body: 'I am email body updated',
6765
email_closing: 'I am email closing updated',
6866
name: 'template-1 updated',
69-
email_address: '[email protected]',
7067
id: 4,
7168
};
7269

@@ -81,7 +78,6 @@ describe('emailTemplate reducer', () => {
8178
'email-template-body': saveTemplateSuccessResponse.email_body,
8279
'email-template-closing': saveTemplateSuccessResponse.email_closing,
8380
'template-name-select': saveTemplateSuccessResponse.name,
84-
'email-address': saveTemplateSuccessResponse.email_address,
8581
'template-id': saveTemplateSuccessResponse.id,
8682
},
8783
},
@@ -98,7 +94,6 @@ describe('emailTemplate reducer', () => {
9894
'email-template-body': saveTemplateSuccessUpdatedResponse.email_body,
9995
'email-template-closing': saveTemplateSuccessUpdatedResponse.email_closing,
10096
'template-name-select': saveTemplateSuccessUpdatedResponse.name,
101-
'email-address': saveTemplateSuccessUpdatedResponse.email_address,
10297
'template-id': saveTemplateSuccessUpdatedResponse.id,
10398
},
10499
},
@@ -161,56 +156,4 @@ describe('emailTemplate reducer', () => {
161156
};
162157
expect(emailTemplate(undefined, errorResponseActionData)).toEqual(expected);
163158
});
164-
165-
it('updates store with email address on switching between new and saved templates', () => {
166-
const saveTemplateSuccessUpdatedResponse = {
167-
email_address: '[email protected]',
168-
};
169-
170-
const initialState = {
171-
...emailTemplateReducerInitialState,
172-
saving: false,
173-
error: null,
174-
...{
175-
default: {
176-
[emailType]: {
177-
'email-template-subject': saveTemplateSuccessResponse.email_subject,
178-
'email-template-greeting': saveTemplateSuccessResponse.email_greeting,
179-
'email-template-body': saveTemplateSuccessResponse.email_body,
180-
'email-template-closing': saveTemplateSuccessResponse.email_closing,
181-
'template-name-select': saveTemplateSuccessResponse.name,
182-
'email-address': '',
183-
'template-id': saveTemplateSuccessResponse.id,
184-
},
185-
},
186-
},
187-
};
188-
189-
const expected = {
190-
...emailTemplateReducerInitialState,
191-
saving: false,
192-
error: null,
193-
...{
194-
default: {
195-
[emailType]: {
196-
'email-template-subject': saveTemplateSuccessResponse.email_subject,
197-
'email-template-greeting': saveTemplateSuccessResponse.email_greeting,
198-
'email-template-body': saveTemplateSuccessResponse.email_body,
199-
'email-template-closing': saveTemplateSuccessResponse.email_closing,
200-
'template-name-select': saveTemplateSuccessResponse.name,
201-
'email-address': saveTemplateSuccessUpdatedResponse.email_address,
202-
'template-id': saveTemplateSuccessResponse.id,
203-
},
204-
},
205-
},
206-
};
207-
const successResponseActionData = {
208-
type: SET_EMAIL_ADDRESS,
209-
payload: {
210-
emailType,
211-
emailAddress: '[email protected]',
212-
},
213-
};
214-
expect(emailTemplate(initialState, successResponseActionData)).toEqual(expected);
215-
});
216159
});

0 commit comments

Comments
 (0)