@capillarytech/creatives-library 7.6.0 → 7.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,8 +24,7 @@ import styles, { CampaignDetailCapColumn } from './Facebook.style';
24
24
  import * as actions from './actions';
25
25
  import withStyles from '../../hoc/withStyles';
26
26
  import MarketingObjective from '../../v2Components/MarketingObjective';
27
- import { makeSelectMarketingObjectiveList, makeSelectFbAd, makeSelectTemplate } from './selectors';
28
- import Advertisement from './Advertisement';
27
+ import { makeSelectMarketingObjectiveList } from './selectors';
29
28
  import {
30
29
  VALUE_APP_INSTALLS,
31
30
  VALUE_BRAND_AWARENESS,
@@ -150,7 +149,9 @@ const getCategorizedMarketingObjectiveList = (marketingObjectivesList, formatMes
150
149
  const Facebook = (props) => {
151
150
  const {
152
151
  className,
153
- templateData,
152
+ templateData: {
153
+ selectedMarketingObjective: fbMarketingObjectiveValue = VALUE_REACH,
154
+ } = {},
154
155
  cap: {
155
156
  campaignDetails: {
156
157
  name: fbCampaignValue,
@@ -178,25 +179,13 @@ const Facebook = (props) => {
178
179
  marketingObjectiveList,
179
180
  facebookActions,
180
181
  intl,
181
- isFullMode,
182
- fbADData,
183
- onCreateComplete,
184
- params,
185
- facebookTemplateData,
186
182
  } = props;
187
- const {
188
- selectedMarketingObjective: fbMarketingObjectiveValue = VALUE_REACH,
189
- } = templateData || {};
183
+
190
184
  const [isDrawerVisible, setDrawerVisibility] = useState(false);
191
185
  const [selectedMarketingObjective, setMarketingObjective] = useState(socialObjective || fbMarketingObjectiveValue);
192
186
 
193
187
  useEffect(() => {
194
- if (!isFullMode) {
195
- facebookActions.getMarketingObjectives();
196
- } else {
197
- const orgId = window.localStorage.getItem('orgID');
198
- facebookActions.getOrgOUs(orgId);
199
- }
188
+ facebookActions.getMarketingObjectives();
200
189
  }, []);
201
190
 
202
191
  const categorizedMarketingObjectiveList = getCategorizedMarketingObjectiveList(marketingObjectiveList, intl.formatMessage);
@@ -226,158 +215,141 @@ const Facebook = (props) => {
226
215
  const onMarketingObjectiveSelect = (value) => setMarketingObjective(value);
227
216
 
228
217
  return (
229
- !isFullMode ? (<div className={className}>
230
- <div className="is-scrollable-section" >
231
- <div className="account-details-wrapper">
232
- <div className="account-name-section">
233
- <CapHeading type="h4">
234
- <FormattedMessage {...messages.fbAccount} />
235
- </CapHeading>
236
- <CapHeading type="h3">{accountName}</CapHeading>
237
- </div>
218
+ <div className={className}>
219
+ <div className="is-scrollable-section">
220
+ <div className="account-details-wrapper">
221
+ <div className="account-name-section">
222
+ <CapHeading type="h4">
223
+ <FormattedMessage {...messages.fbAccount} />
224
+ </CapHeading>
225
+ <CapHeading type="h3">{accountName}</CapHeading>
226
+ </div>
238
227
 
239
- <div className="account-section-container">
240
- <CapHeading type="h3">
241
- <FormattedMessage {...messages.fbAdCampaignSetDetailsTitle} />
242
- </CapHeading>
243
- <CapLabel type="label1">
244
- <FormattedMessage
245
- {...messages.fbAdCampaignSetDetailsDescription}
228
+ <div className="account-section-container">
229
+ <CapHeading type="h3">
230
+ <FormattedMessage {...messages.fbAdCampaignSetDetailsTitle} />
231
+ </CapHeading>
232
+ <CapLabel type="label1">
233
+ <FormattedMessage
234
+ {...messages.fbAdCampaignSetDetailsDescription}
246
235
  />
247
- </CapLabel>
248
- </div>
236
+ </CapLabel>
237
+ </div>
249
238
 
250
- <CapRow span={12} type="flex">
251
- {campaignDataList.map(({ label, value, onChange }, index) => (
252
- <StyledCampaignDetailCapColumn
253
- span={index % 2 === 0 ? 6 : 14}
254
- key={label}
239
+ <CapRow span={12} type="flex">
240
+ {campaignDataList.map(({ label, value, onChange }, index) => (
241
+ <StyledCampaignDetailCapColumn
242
+ span={index % 2 === 0 ? 6 : 14}
243
+ key={label}
255
244
  >
256
- <CapRow>
257
- <CapLabel type="label2">
258
- <FormattedMessage {...messages[label]} />
259
- </CapLabel>
260
- <CapHeading type="h4">
261
- {value}
262
- {!socialRemoteCampaignId && onChange && (
263
- <CapButton
264
- type="flat"
265
- className="marketingObjective-change-button facebook-marketing-objective-change"
266
- onClick={onChange}
245
+ <CapRow>
246
+ <CapLabel type="label2">
247
+ <FormattedMessage {...messages[label]} />
248
+ </CapLabel>
249
+ <CapHeading type="h4">
250
+ {value}
251
+ {!socialRemoteCampaignId && onChange && (
252
+ <CapButton
253
+ type="flat"
254
+ className="marketingObjective-change-button facebook-marketing-objective-change"
255
+ onClick={onChange}
267
256
  >
268
- <FormattedMessage {...messages.fbChange} />
269
- </CapButton>
257
+ <FormattedMessage {...messages.fbChange} />
258
+ </CapButton>
270
259
  )}
271
- </CapHeading>
272
- </CapRow>
273
- </StyledCampaignDetailCapColumn>
260
+ </CapHeading>
261
+ </CapRow>
262
+ </StyledCampaignDetailCapColumn>
274
263
  ))}
275
- </CapRow>
276
- <CapDrawer
277
- content={
278
- <MarketingObjective
279
- selectedMarketingObjective={selectedMarketingObjective}
280
- onMarketingObjectiveSelect={onMarketingObjectiveSelect}
281
- defaultmarketingObjective={socialObjective || fbMarketingObjectiveValue}
282
- onSubmit={setDrawerVisibility}
283
- marketingObjectiveList={categorizedMarketingObjectiveList}
264
+ </CapRow>
265
+ <CapDrawer
266
+ content={
267
+ <MarketingObjective
268
+ selectedMarketingObjective={selectedMarketingObjective}
269
+ onMarketingObjectiveSelect={onMarketingObjectiveSelect}
270
+ defaultmarketingObjective={socialObjective || fbMarketingObjectiveValue}
271
+ onSubmit={setDrawerVisibility}
272
+ marketingObjectiveList={categorizedMarketingObjectiveList}
284
273
  />
285
274
  }
286
- visible={isDrawerVisible}
287
- width={380}
288
- onClose={() => setDrawerVisibility(false)}
275
+ visible={isDrawerVisible}
276
+ width={380}
277
+ onClose={() => setDrawerVisibility(false)}
289
278
  />
290
- </div>
279
+ </div>
291
280
 
292
- <div className="ad-section">
293
- <div className="account-section-container">
294
- <CapHeading type="h3">
295
- <FormattedMessage {...messages.fbAdsTitle} />
296
- </CapHeading>
297
- <CapLabel type="label1">
298
- <FormattedMessage {...messages.fbAdsDescription} />
299
- </CapLabel>
300
- </div>
281
+ <div className="ad-section">
282
+ <div className="account-section-container">
283
+ <CapHeading type="h3">
284
+ <FormattedMessage {...messages.fbAdsTitle} />
285
+ </CapHeading>
286
+ <CapLabel type="label1">
287
+ <FormattedMessage {...messages.fbAdsDescription} />
288
+ </CapLabel>
289
+ </div>
301
290
 
302
- <div>
303
- <CapRow span={12} type="flex">
304
- <CapColumn span={6}>
305
- <CapCustomCard
306
- type="Facebook"
307
- FBDynamicComponent={() => (
308
- <CapIcon
309
- size="l"
310
- type="scenery"
311
- className="facebook-dynamic-content"
291
+ <div>
292
+ <CapRow span={12} type="flex">
293
+ <CapColumn span={6}>
294
+ <CapCustomCard
295
+ type="Facebook"
296
+ FBDynamicComponent={() => (
297
+ <CapIcon
298
+ size="l"
299
+ type="scenery"
300
+ className="facebook-dynamic-content"
312
301
  />
313
302
  )}
314
303
  />
315
- </CapColumn>
316
- <CapColumn span={16}>
317
- <ul className="parameter-list">
318
- {adSetParameters.map((parameter, index) => (
319
- <li key={parameter} className="parameter-list-item">
320
- <CapLabel type="label2" className="parameter-index">
321
- {index + 1}
322
- </CapLabel>
323
- <CapHeading type="h5">
324
- <FormattedMessage {...messages[parameter]} />
325
- </CapHeading>
326
- </li>
304
+ </CapColumn>
305
+ <CapColumn span={16}>
306
+ <ul className="parameter-list">
307
+ {adSetParameters.map((parameter, index) => (
308
+ <li key={parameter} className="parameter-list-item">
309
+ <CapLabel type="label2" className="parameter-index">
310
+ {index + 1}
311
+ </CapLabel>
312
+ <CapHeading type="h5">
313
+ <FormattedMessage {...messages[parameter]} />
314
+ </CapHeading>
315
+ </li>
327
316
  ))}
328
- </ul>
329
- </CapColumn>
330
- </CapRow>
331
- </div>
332
- </div>
333
- </div>
334
- <CapButton
335
- className="facebook-confirm-button"
336
- type="primary"
337
- onClick={() =>
317
+ </ul>
318
+ </CapColumn>
319
+ </CapRow>
320
+ </div>
321
+ </div>
322
+ </div>
323
+ <CapButton
324
+ className="facebook-confirm-button"
325
+ type="primary"
326
+ onClick={() =>
338
327
  onFacebookSubmit({ channel: "FACEBOOK", selectedMarketingObjective, accountId })
339
328
  }
340
329
  >
341
- <FormattedMessage {...messages.fbConfirm} />
342
- </CapButton>
343
- </div>) : <div style={{height: '1200px'}}>
344
- <Advertisement
345
- isFullMode={isFullMode}
346
- actions={facebookActions}
347
- fbADData={fbADData}
348
- onCreateComplete={onCreateComplete}
349
- templateData={templateData}
350
- params={params}
351
- facebookTemplateData={facebookTemplateData}
352
- /></div>
330
+ <FormattedMessage {...messages.fbConfirm} />
331
+ </CapButton>
332
+ </div>
353
333
  );
354
334
  };
355
335
 
356
336
  Facebook.propTypes = {
357
- className: PropTypes.string,
337
+ className: PropTypes.string.isRequired,
358
338
  templateData: PropTypes.object,
359
339
  cap: PropTypes.object,
360
340
  messageDetails: PropTypes.object,
361
- params: PropTypes.object,
362
- onFacebookSubmit: PropTypes.func,
341
+ onFacebookSubmit: PropTypes.func.isRequired,
363
342
  marketingObjectiveList: PropTypes.arrayOf(PropTypes.string),
364
- facebookActions: PropTypes.func,
365
- intl: intlShape,
366
- isFullMode: PropTypes.boolean,
367
- fbADData: PropTypes.object,
368
- onCreateComplete: PropTypes.func,
369
- facebookTemplateData: PropTypes.object,
343
+ facebookActions: PropTypes.func.isRequired,
344
+ intl: intlShape.isRequired,
370
345
  };
371
346
 
372
347
  Facebook.defaultProps = {
373
- marketingObjectiveList: [""],
374
-
348
+ marketingObjectiveList: [],
375
349
  };
376
350
 
377
351
  const mapStateToProps = createStructuredSelector({
378
352
  marketingObjectiveList: makeSelectMarketingObjectiveList(),
379
- fbADData: makeSelectFbAd(),
380
- facebookTemplateData: makeSelectTemplate(),
381
353
  });
382
354
 
383
355
  const mapDispatchToProps = (dispatch) => ({
@@ -8,34 +8,14 @@ import { fromJS } from 'immutable';
8
8
  import {
9
9
  SET_MARKETING_OBJECTIVES_SUCCESS,
10
10
  SET_MARKETING_OBJECTIVES_FAILURE,
11
- UPLOAD_FB_AD_ASSET_REQUEST,
12
- UPLOAD_FB_AD_ASSET_SUCCESS,
13
- UPLOAD_FB_AD_ASSET_FAILURE,
14
- CREATE_FACEBOOK_AD_TEMPLATE_REQUEST,
15
- CREATE_FACEBOOK_AD_TEMPLATE_SUCCESS,
16
- CREATE_FACEBOOK_AD_TEMPLATE_FAILURE,
17
- CLEAR_FACEBOOK_AD_ASSET,
18
- EDIT_FACEBOOK_AD_TEMPLATE_REQUEST,
19
- EDIT_FACEBOOK_AD_TEMPLATE_SUCCESS,
20
- EDIT_FACEBOOK_AD_TEMPLATE_FAILURE,
21
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_REQUEST,
22
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_SUCCESS,
23
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_FAILURE,
24
- CLEAR_FACEBOOK_AD_EDIT_RESPONSE_REQUEST,
25
- CLEAR_FACEBOOK_AD_CREATE_RESPONSE_REQUEST,
26
- CLEAR_FACEBOOK_AD_DATA,
27
- GET_ORG_OU_LIST_REQUEST,
28
- GET_ORG_OU_LIST_FAILURE,
29
- GET_ORG_OU_LIST_SUCCESS,
30
11
  } from './constants';
31
12
 
32
13
  export const initialState = fromJS({
33
14
  marketinObjectives: {},
34
- uploadedAssetData: {},
35
15
  });
36
16
 
37
17
  function facebookReducer(state = initialState, action) {
38
- const { type, payload, templateType} = action;
18
+ const { type, payload } = action;
39
19
  switch (type) {
40
20
  case SET_MARKETING_OBJECTIVES_SUCCESS: {
41
21
  return state.set('marketinObjectivesData', payload).set('marketinObjectivesError', null);
@@ -43,80 +23,6 @@ function facebookReducer(state = initialState, action) {
43
23
  case SET_MARKETING_OBJECTIVES_FAILURE: {
44
24
  return state.set('marketinObjectivesData', []).set('marketinObjectivesError', payload);
45
25
  }
46
- case UPLOAD_FB_AD_ASSET_REQUEST:
47
- return state
48
- .set('uploadAssetSuccess', false)
49
- .set(templateType !== undefined ? `assetUploading${templateType}` : 'assetUploading', true);
50
- case UPLOAD_FB_AD_ASSET_SUCCESS:
51
- return state
52
- .set('uploadAssetSuccess', (action.statusCode !== undefined && action.statusCode !== '' && action.statusCode < 300))
53
- .set(templateType !== undefined ? `assetUploading${templateType}` : 'assetUploading', false)
54
- .set(templateType !== undefined ? `uploadedAssetData${templateType}` : 'uploadedAssetData', action.data);
55
- case UPLOAD_FB_AD_ASSET_FAILURE:
56
- return state
57
- .set('uploadAssetSuccess', false)
58
- .set(templateType !== undefined ? `assetUploading${templateType}` : 'assetUploading', false);
59
- case CREATE_FACEBOOK_AD_TEMPLATE_REQUEST:
60
- return state
61
- .set('createTemplateInProgress', true)
62
- .set('createTemplateError', false)
63
- .set('createTemplateErrorMessage', fromJS(""));
64
- case CREATE_FACEBOOK_AD_TEMPLATE_SUCCESS:
65
- return state.set('createTemplateInProgress', false)
66
- .set('response', action.data)
67
- .set('createTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
68
- .set('createTemplateErrorMessage', fromJS(action.errorMsg));
69
- case CREATE_FACEBOOK_AD_TEMPLATE_FAILURE:
70
- return state
71
- .set('createTemplateInProgress', false)
72
- .set('createTemplateError', true)
73
- .set('createTemplateErrorMessage', fromJS(action.errorMsg));
74
- case CLEAR_FACEBOOK_AD_ASSET:
75
- return state
76
- .delete(templateType !== undefined ? `uploadedAssetData${templateType}` : 'uploadedAssetData');
77
- // FOR EDIT
78
- case EDIT_FACEBOOK_AD_TEMPLATE_REQUEST:
79
- return state
80
- .set('editTemplateInProgress', true)
81
- .set('editTemplateError', false)
82
- .set('editTemplateErrorMessage', fromJS(""));
83
- case EDIT_FACEBOOK_AD_TEMPLATE_SUCCESS:
84
- return state.set('editTemplateInProgress', false)
85
- .set('editResponse', action.data)
86
- .set('editTemplateError', (action.statusCode !== undefined && action.statusCode > 300))
87
- .set('editTemplateErrorMessage', fromJS(action.errorMsg));
88
- case EDIT_FACEBOOK_AD_TEMPLATE_FAILURE:
89
- return state
90
- .set('editTemplateInProgress', false)
91
- .set('editTemplateError', true)
92
- .set('editTemplateErrorMessage', fromJS(action.errorMsg));
93
- case GET_FACEBOOK_AD_TEMPLATE_DETAILS_REQUEST:
94
- return state.set('getTemplateDetailsInProgress', true);
95
- case GET_FACEBOOK_AD_TEMPLATE_DETAILS_SUCCESS:
96
- return state.set('getTemplateDetailsInProgress', false)
97
- .set('templateDetails', action.data);
98
- case GET_FACEBOOK_AD_TEMPLATE_DETAILS_FAILURE:
99
- case CLEAR_FACEBOOK_AD_EDIT_RESPONSE_REQUEST:
100
- return state.set('editResponse', {});
101
- case CLEAR_FACEBOOK_AD_CREATE_RESPONSE_REQUEST:
102
- return state.set('response', {});
103
- case CLEAR_FACEBOOK_AD_DATA:
104
- return state
105
- .delete('uploadedAssetData')
106
- .delete('metaEntities')
107
- .delete('templateDetails');
108
- case GET_ORG_OU_LIST_REQUEST: {
109
- return state.set('orgOuData', fromJS({ status: 'REQUEST' }));
110
- }
111
- case GET_ORG_OU_LIST_SUCCESS: {
112
- return state.set(
113
- 'orgOuData',
114
- fromJS({ status: 'SUCCESS', data: action.payload }),
115
- );
116
- }
117
- case GET_ORG_OU_LIST_FAILURE: {
118
- return state.set('orgOuData', fromJS({ status: 'FAILURE' }));
119
- }
120
26
  default:
121
27
  return state;
122
28
  }
@@ -5,21 +5,6 @@ import {
5
5
  GET_MARKETING_OBJECTIVES,
6
6
  SET_MARKETING_OBJECTIVES_SUCCESS,
7
7
  SET_MARKETING_OBJECTIVES_FAILURE,
8
- UPLOAD_FB_AD_ASSET_REQUEST,
9
- UPLOAD_FB_AD_ASSET_SUCCESS,
10
- UPLOAD_FB_AD_ASSET_FAILURE,
11
- CREATE_FACEBOOK_AD_TEMPLATE_REQUEST,
12
- CREATE_FACEBOOK_AD_TEMPLATE_SUCCESS,
13
- CREATE_FACEBOOK_AD_TEMPLATE_FAILURE,
14
- EDIT_FACEBOOK_AD_TEMPLATE_REQUEST,
15
- EDIT_TEMPLATE_FACEBOOK_AD_SUCCESS,
16
- EDIT_FACEBOOK_AD_TEMPLATE_FAILURE,
17
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_REQUEST,
18
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_SUCCESS,
19
- GET_FACEBOOK_AD_TEMPLATE_DETAILS_FAILURE,
20
- GET_ORG_OU_LIST_FAILURE,
21
- GET_ORG_OU_LIST_SUCCESS,
22
- GET_ORG_OU_LIST_REQUEST,
23
8
  } from './constants';
24
9
 
25
10
  export function* fetchMarketingObjectives() {
@@ -44,134 +29,13 @@ export function* fetchMarketingObjectives() {
44
29
  });
45
30
  }
46
31
  }
47
- export function* getOrgOUs({ orgID } = {}) {
48
- try {
49
- const apiResponse = yield call(Api.getOrgOUs, { orgID });
50
- if (apiResponse.status === 200) {
51
- yield put({
52
- type: GET_ORG_OU_LIST_SUCCESS,
53
- payload: apiResponse.result,
54
- });
55
- } else {
56
- yield put({
57
- type: GET_ORG_OU_LIST_FAILURE,
58
- payload: apiResponse,
59
- });
60
- }
61
- } catch (error) {
62
- yield put({
63
- type: GET_ORG_OU_LIST_FAILURE,
64
- payload: error,
65
- });
66
- }
67
- }
68
-
69
- export function* uploadFbAdAsset(file, assetType, fileParams ) {
70
- try {
71
- const result = yield call(Api.uploadFile, file, assetType, fileParams);
72
- yield put({
73
- type: UPLOAD_FB_AD_ASSET_SUCCESS,
74
- data: result.response.asset,
75
- statusCode: result.status ? result.status.code : '',
76
- templateType: file.templateType,
77
- });
78
- } catch (error) {
79
- yield put({ type: UPLOAD_FB_AD_ASSET_FAILURE, error });
80
- }
81
- }
82
- export function* createFacebookADTemplate({ template, callback }) {
83
- let errorMsg;
84
- try {
85
- const result = yield call(Api.createFacebookADTemplate, { template });
86
- if (result.status.code >= 400) {
87
- errorMsg = result.message;
88
- throw errorMsg;
89
- }
90
- yield put({ type: CREATE_FACEBOOK_AD_TEMPLATE_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
91
- if (callback) {
92
- callback(result.response);
93
- }
94
- } catch (error) {
95
- yield put({ type: CREATE_FACEBOOK_AD_TEMPLATE_FAILURE, error, errorMsg });
96
- if (callback) {
97
- callback(null, errorMsg);
98
- }
99
- }
100
- }
101
-
102
-
103
- export function* editTemplate({ template, callback }) {
104
- let errorMsg;
105
- try {
106
- const result = yield call(Api.createFacebookADTemplate, {template});
107
- if (result.status.code >= 400) {
108
- errorMsg = result.message;
109
- throw errorMsg;
110
- }
111
- if (callback) {
112
- callback(result.response);
113
- }
114
- yield put({ type: EDIT_TEMPLATE_FACEBOOK_AD_SUCCESS, data: result.response, statusCode: result.status ? result.status.code : '', errorMsg });
115
- } catch (error) {
116
- yield put({ type: EDIT_FACEBOOK_AD_TEMPLATE_FAILURE, error, errorMsg });
117
- if (callback) {
118
- callback(null, errorMsg);
119
- }
120
- }
121
- }
122
-
123
- export function* getTemplateDetails({id, callback}) {
124
- try {
125
- const result = yield call(Api.getTemplateDetails, {id, channel: 'FACEBOOK'});
126
- yield put({ type: GET_FACEBOOK_AD_TEMPLATE_DETAILS_SUCCESS, data: result.response });
127
- if (callback) {
128
- callback(false);
129
- }
130
- } catch (error) {
131
- yield put({ type: GET_FACEBOOK_AD_TEMPLATE_DETAILS_FAILURE, error });
132
- }
133
- }
134
-
135
-
136
- function* watchCreateTemplate() {
137
- const watcher = yield takeLatest(CREATE_FACEBOOK_AD_TEMPLATE_REQUEST, createFacebookADTemplate);
138
- yield take(LOCATION_CHANGE);
139
- yield cancel(watcher);
140
- }
141
-
142
- function* watchGetTemplateDetails() {
143
- const watcher = yield takeLatest(GET_FACEBOOK_AD_TEMPLATE_DETAILS_REQUEST, getTemplateDetails);
144
- yield take(LOCATION_CHANGE);
145
- yield cancel(watcher);
146
- }
147
-
148
- function* watchEditTemplate() {
149
- const watcher = yield takeLatest(EDIT_FACEBOOK_AD_TEMPLATE_REQUEST, editTemplate);
150
- yield take(LOCATION_CHANGE);
151
- yield cancel(watcher);
152
- }
153
-
154
32
 
155
33
  function* watchFetchMarketingObjective() {
156
34
  const watcher = yield takeLatest(GET_MARKETING_OBJECTIVES, fetchMarketingObjectives);
157
35
  yield take(LOCATION_CHANGE);
158
36
  yield cancel(watcher);
159
37
  }
160
- function* watchUploadFbADAsset() {
161
- const watcher = yield takeLatest(UPLOAD_FB_AD_ASSET_REQUEST, uploadFbAdAsset);
162
- yield take(LOCATION_CHANGE);
163
- yield cancel(watcher);
164
- }
165
- export function* watchGetOrgOUs() {
166
- yield takeLatest(GET_ORG_OU_LIST_REQUEST, getOrgOUs);
167
- }
168
38
 
169
39
  export default [
170
40
  watchFetchMarketingObjective,
171
- watchUploadFbADAsset,
172
- watchEditTemplate,
173
- watchGetTemplateDetails,
174
- watchCreateTemplate,
175
- watchGetOrgOUs,
176
41
  ];
177
-
@@ -5,11 +5,6 @@ import { createSelector } from 'reselect';
5
5
  */
6
6
  const selectFacebookDomain = () => (state) => state.get('facebook');
7
7
 
8
- const selectTemplateDomain = () => (state) => state.get('templates');
9
- export const makeSelectTemplate = () => createSelector(
10
- selectTemplateDomain(),
11
- (substate) => substate && substate.toJS()
12
- );
13
8
  /**
14
9
  * Other specific selectors
15
10
  */
@@ -23,8 +18,3 @@ export const makeSelectMarketingObjectiveList = () => createSelector(
23
18
  selectFacebookDomain(),
24
19
  (substate) => substate && substate.get('marketinObjectivesData'),
25
20
  );
26
-
27
- export const makeSelectFbAd = () => createSelector(
28
- selectFacebookDomain(),
29
- (substate) => substate && substate.toJS()
30
- );