@capillarytech/creatives-library 6.15.1 → 6.15.2

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.
Files changed (48) hide show
  1. package/app.js +2 -2
  2. package/containers/Templates/index.js +0 -3
  3. package/package.json +2 -2
  4. package/v2Components/BeeEditor/index.js +263 -0
  5. package/v2Components/BeeEditor/index.scss +11 -0
  6. package/v2Components/BeeEditor/messages.js +71 -0
  7. package/v2Components/BeeEditor/tests/index.test.js +10 -0
  8. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +151 -151
  9. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +33 -33
  10. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -10
  11. package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +44 -44
  12. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -21
  13. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -16
  14. package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +134 -134
  15. package/v2Components/TemplatePreview/assets/images/mobile.svg +23 -23
  16. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -22
  17. package/v2Components/TemplatePreview/assets/images/user-icon.svg +18 -18
  18. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -21
  19. package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +77 -77
  20. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -20
  21. package/v2Components/TemplatePreview/tests/index.test.js +10 -10
  22. package/v2Containers/CreativesContainer/actions.js +27 -27
  23. package/v2Containers/CreativesContainer/index.scss +44 -44
  24. package/v2Containers/CreativesContainer/messages.js +305 -305
  25. package/v2Containers/CreativesContainer/reducer.js +29 -29
  26. package/v2Containers/CreativesContainer/sagas.js +11 -11
  27. package/v2Containers/CreativesContainer/selectors.js +30 -30
  28. package/v2Containers/CreativesContainer/tests/actions.test.js +18 -18
  29. package/v2Containers/CreativesContainer/tests/index.test.js +10 -10
  30. package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -9
  31. package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -15
  32. package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -10
  33. package/v2Containers/Line/Create/index.js +23 -3
  34. package/v2Containers/Line/Edit/index.js +5 -5
  35. package/v2Containers/Templates/tests/actions.test.js +18 -18
  36. package/v2Containers/Templates/tests/index.test.js +10 -10
  37. package/v2Containers/Templates/tests/reducer.test.js +9 -9
  38. package/v2Containers/Templates/tests/sagas.test.js +15 -15
  39. package/v2Containers/Templates/tests/selectors.test.js +10 -10
  40. package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -29
  41. package/v2Containers/TemplatesV2/actions.js +16 -16
  42. package/v2Containers/TemplatesV2/constants.js +10 -10
  43. package/v2Containers/TemplatesV2/selectors.js +25 -25
  44. package/v2Containers/TemplatesV2/tests/actions.test.js +18 -18
  45. package/v2Containers/TemplatesV2/tests/index.test.js +10 -10
  46. package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -9
  47. package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -15
  48. package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -10
@@ -1,11 +1,11 @@
1
- // import { take, call, put, select } from 'redux-saga/effects';
2
-
3
- // Individual exports for testing
4
- export function* defaultSaga() {
5
- // See example in v2Containers/HomePage/sagas.js
6
- }
7
-
8
- // All sagas to be loaded
9
- export default [
10
- defaultSaga,
11
- ];
1
+ // import { take, call, put, select } from 'redux-saga/effects';
2
+
3
+ // Individual exports for testing
4
+ export function* defaultSaga() {
5
+ // See example in v2Containers/HomePage/sagas.js
6
+ }
7
+
8
+ // All sagas to be loaded
9
+ export default [
10
+ defaultSaga,
11
+ ];
@@ -1,30 +1,30 @@
1
- import { createSelector } from 'reselect';
2
-
3
- /**
4
- * Direct selector to the creativesContainer state domain
5
- */
6
- const selectCreativesContainerDomain = () => (state) => state.get('creativesContainer');
7
-
8
- /**
9
- * Other specific selectors
10
- */
11
-
12
-
13
- /**
14
- * Default selector used by CreativesContainer
15
- */
16
-
17
- const makeSelectCreativesContainer = () => createSelector(
18
- selectCreativesContainerDomain(),
19
- (substate) => substate.toJS()
20
- );
21
- const isLoading = () => createSelector(
22
- makeSelectCreativesContainer(),
23
- (substate) => substate.containerLoader
24
- );
25
-
26
- export default makeSelectCreativesContainer;
27
- export {
28
- selectCreativesContainerDomain,
29
- isLoading,
30
- };
1
+ import { createSelector } from 'reselect';
2
+
3
+ /**
4
+ * Direct selector to the creativesContainer state domain
5
+ */
6
+ const selectCreativesContainerDomain = () => (state) => state.get('creativesContainer');
7
+
8
+ /**
9
+ * Other specific selectors
10
+ */
11
+
12
+
13
+ /**
14
+ * Default selector used by CreativesContainer
15
+ */
16
+
17
+ const makeSelectCreativesContainer = () => createSelector(
18
+ selectCreativesContainerDomain(),
19
+ (substate) => substate.toJS()
20
+ );
21
+ const isLoading = () => createSelector(
22
+ makeSelectCreativesContainer(),
23
+ (substate) => substate.containerLoader
24
+ );
25
+
26
+ export default makeSelectCreativesContainer;
27
+ export {
28
+ selectCreativesContainerDomain,
29
+ isLoading,
30
+ };
@@ -1,18 +1,18 @@
1
-
2
- import {
3
- defaultAction,
4
- } from '../actions';
5
- import {
6
- DEFAULT_ACTION,
7
- } from '../constants';
8
-
9
- describe('CreativesContainer actions', () => {
10
- describe('Default Action', () => {
11
- it('has a type of DEFAULT_ACTION', () => {
12
- const expected = {
13
- type: DEFAULT_ACTION,
14
- };
15
- expect(defaultAction()).toEqual(expected);
16
- });
17
- });
18
- });
1
+
2
+ import {
3
+ defaultAction,
4
+ } from '../actions';
5
+ import {
6
+ DEFAULT_ACTION,
7
+ } from '../constants';
8
+
9
+ describe('CreativesContainer actions', () => {
10
+ describe('Default Action', () => {
11
+ it('has a type of DEFAULT_ACTION', () => {
12
+ const expected = {
13
+ type: DEFAULT_ACTION,
14
+ };
15
+ expect(defaultAction()).toEqual(expected);
16
+ });
17
+ });
18
+ });
@@ -1,10 +1,10 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import { CreativesContainer } from '../index';
5
-
6
- describe('<CreativesContainer />', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(true);
9
- });
10
- });
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import { CreativesContainer } from '../index';
5
+
6
+ describe('<CreativesContainer />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(true);
9
+ });
10
+ });
@@ -1,9 +1,9 @@
1
-
2
- import { fromJS } from 'immutable';
3
- import creativesContainerReducer from '../reducer';
4
-
5
- describe('creativesContainerReducer', () => {
6
- it('returns the initial state', () => {
7
- expect(creativesContainerReducer(undefined, {})).toEqual(fromJS({}));
8
- });
9
- });
1
+
2
+ import { fromJS } from 'immutable';
3
+ import creativesContainerReducer from '../reducer';
4
+
5
+ describe('creativesContainerReducer', () => {
6
+ it('returns the initial state', () => {
7
+ expect(creativesContainerReducer(undefined, {})).toEqual(fromJS({}));
8
+ });
9
+ });
@@ -1,15 +1,15 @@
1
- /**
2
- * Test sagas
3
- */
4
-
5
- /* eslint-disable redux-saga/yield-effects */
6
- // import { take, call, put, select } from 'redux-saga/effects';
7
- // import { defaultSaga } from '../sagas';
8
-
9
- // const generator = defaultSaga();
10
-
11
- describe('defaultSaga Saga', () => {
12
- it('Expect to have unit tests specified', () => {
13
- expect(true).toEqual(true);
14
- });
15
- });
1
+ /**
2
+ * Test sagas
3
+ */
4
+
5
+ /* eslint-disable redux-saga/yield-effects */
6
+ // import { take, call, put, select } from 'redux-saga/effects';
7
+ // import { defaultSaga } from '../sagas';
8
+
9
+ // const generator = defaultSaga();
10
+
11
+ describe('defaultSaga Saga', () => {
12
+ it('Expect to have unit tests specified', () => {
13
+ expect(true).toEqual(true);
14
+ });
15
+ });
@@ -1,10 +1,10 @@
1
- // import { fromJS } from 'immutable';
2
- // import { makeSelectCreativesContainerDomain } from '../selectors';
3
-
4
- // const selector = makeSelectCreativesContainerDomain();
5
-
6
- describe('makeSelectCreativesContainerDomain', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(true);
9
- });
10
- });
1
+ // import { fromJS } from 'immutable';
2
+ // import { makeSelectCreativesContainerDomain } from '../selectors';
3
+
4
+ // const selector = makeSelectCreativesContainerDomain();
5
+
6
+ describe('makeSelectCreativesContainerDomain', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(true);
9
+ });
10
+ });
@@ -7,6 +7,7 @@ import { intlShape } from 'react-intl';
7
7
  import { createStructuredSelector } from 'reselect';
8
8
  import _ from 'lodash';
9
9
  import { CapSpin, CapHeading, CapRow, CapColumn, CapNotification } from '@capillarytech/cap-ui-library';
10
+ import { GA } from '@capillarytech/cap-ui-utils';
10
11
  import messages from './messages';
11
12
  import * as actions from './actions';
12
13
  import Gallery from '../../Assets/Gallery';
@@ -23,6 +24,7 @@ import {
23
24
  LINE_IMG_WIDTH,
24
25
  LINE_IMG_SIZE,
25
26
  } from './constants';
27
+ import { TRACK_CREATE_LINE, TRACK_EDIT_LINE } from '../../App/constants';
26
28
 
27
29
  export class Line extends Component {
28
30
  constructor(props) {
@@ -521,18 +523,36 @@ export class Line extends Component {
521
523
  } = this.props;
522
524
  const { text, originalContentUrl, image } = get(obj, "versions.base.content.messages[0]", {});
523
525
  const { name } = obj || {};
526
+ const {stopTimer} = GA.timeTracker;
527
+ const modeType = obj.definition.mode;
528
+ const type = this.state.isEdit ? TRACK_EDIT_LINE : TRACK_CREATE_LINE;
524
529
  if ((text || originalContentUrl || image) && (isFullMode ? name : true)) {
525
530
  if (!isFullMode) {
526
531
  saveMessage();
527
532
  } else if (this.state.isEdit) {
528
533
  actions.editTemplate(obj, () => {
534
+ // stop timer for edit line
535
+ stopTimer(type, {
536
+ category: 'Creatives',
537
+ action: type,
538
+ label: modeType,
539
+ });
529
540
  this.setEditSuccessMessage();
530
541
  onCreateComplete();
531
542
  });
532
543
  } else {
533
544
  actions.createTemplate(
534
545
  obj,
535
- onCreateComplete
546
+ () => {
547
+ // stop timer for create line
548
+ stopTimer(type, {
549
+ category: 'Creatives',
550
+ action: type,
551
+ label: modeType,
552
+ });
553
+ this.setEditSuccessMessage();
554
+ onCreateComplete();
555
+ }
536
556
  );
537
557
  }
538
558
  }
@@ -861,7 +881,7 @@ export class Line extends Component {
861
881
  layout: 'LINE',
862
882
  type: 'TAG',
863
883
  context:
864
- data.toLowerCase() === 'all' ? 'default' : data.toLowerCase(),
884
+ (data || '').toLowerCase() === 'all' ? 'default' : (data || '').toLowerCase(),
865
885
  embedded:
866
886
  this.props.location.query.type === 'embedded'
867
887
  ? this.props.location.query.type
@@ -1109,4 +1129,4 @@ export default withCreatives({
1109
1129
  mapStateToProps,
1110
1130
  mapDispatchToProps,
1111
1131
  userAuth: true,
1112
- });
1132
+ });
@@ -431,8 +431,8 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
431
431
  if (secondaryCta1) {
432
432
  const cta = {
433
433
  actionText: android['secondary-cta-0-label'],
434
- type: android['cta-deeplink-secondary-cta-0'].toLowerCase() === "deeplink" ? "DEEP_LINK" : "EXTERNAL_URL",
435
- actionLink: android['cta-deeplink-secondary-cta-0'].toLowerCase() === "deeplink" ? android['cta-deeplink-secondary-cta-0-select'] : android['cta-deeplink-secondary-cta-0-text'],
434
+ type: (android['cta-deeplink-secondary-cta-0'] || '').toLowerCase() === "deeplink" ? "DEEP_LINK" : "EXTERNAL_URL",
435
+ actionLink: (android['cta-deeplink-secondary-cta-0'] || '').toLowerCase() === "deeplink" ? android['cta-deeplink-secondary-cta-0-select'] : android['cta-deeplink-secondary-cta-0-text'],
436
436
  seccdeepLinkName: this.getLinkName(android['cta-deeplink-secondary-cta-0-select']),
437
437
  };
438
438
  if (this.props.location.query.type === 'embedded') {
@@ -456,8 +456,8 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
456
456
  if (secondaryCta2) {
457
457
  obj.versions.base.ANDROID.expandableDetails.ctas.push({
458
458
  actionText: android['secondary-cta-1-label'],
459
- type: android['cta-deeplink-secondary-cta-1'].toLowerCase() === "deeplink" ? "DEEP_LINK" : "EXTERNAL_URL",
460
- actionLink: android['cta-deeplink-secondary-cta-1'].toLowerCase() === "deeplink" ? android['cta-deeplink-secondary-cta-1-select'] : android['cta-deeplink-secondary-cta-1-text'],
459
+ type: (android['cta-deeplink-secondary-cta-1'] || '').toLowerCase() === "deeplink" ? "DEEP_LINK" : "EXTERNAL_URL",
460
+ actionLink: (android['cta-deeplink-secondary-cta-1'] || '').toLowerCase() === "deeplink" ? android['cta-deeplink-secondary-cta-1-select'] : android['cta-deeplink-secondary-cta-1-text'],
461
461
  seccdeepLinkName: this.getLinkName(android['cta-deeplink-secondary-cta-1-select']),
462
462
  });
463
463
  if (obj.versions.base.ANDROID.expandableDetails.ctas[obj.versions.base.ANDROID.expandableDetails.ctas.length - 1].type === "DEEP_LINK") {
@@ -947,7 +947,7 @@ export class Edit extends React.Component { // eslint-disable-line react/prefer-
947
947
  const query = {
948
948
  layout: 'line',
949
949
  type: 'TAG',
950
- context: data.toLowerCase() === 'all' ? 'default' : data.toLowerCase(),
950
+ context: (data || '').toLowerCase() === 'all' ? 'default' : (data || '').toLowerCase(),
951
951
  embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
952
952
  };
953
953
  this.props.globalActions.fetchSchemaForEntity(query);
@@ -1,18 +1,18 @@
1
-
2
- import {
3
- defaultAction,
4
- } from '../actions';
5
- import {
6
- DEFAULT_ACTION,
7
- } from '../constants';
8
-
9
- describe('Templates actions', () => {
10
- describe('Default Action', () => {
11
- it('has a type of DEFAULT_ACTION', () => {
12
- const expected = {
13
- type: DEFAULT_ACTION,
14
- };
15
- expect(defaultAction()).toEqual(expected);
16
- });
17
- });
18
- });
1
+
2
+ import {
3
+ defaultAction,
4
+ } from '../actions';
5
+ import {
6
+ DEFAULT_ACTION,
7
+ } from '../constants';
8
+
9
+ describe('Templates actions', () => {
10
+ describe('Default Action', () => {
11
+ it('has a type of DEFAULT_ACTION', () => {
12
+ const expected = {
13
+ type: DEFAULT_ACTION,
14
+ };
15
+ expect(defaultAction()).toEqual(expected);
16
+ });
17
+ });
18
+ });
@@ -1,10 +1,10 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import { Templates } from '../index';
5
-
6
- describe('<Templates />', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(false);
9
- });
10
- });
1
+ // import React from 'react';
2
+ // import { shallow } from 'enzyme';
3
+
4
+ // import { Templates } from '../index';
5
+
6
+ describe('<Templates />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -1,9 +1,9 @@
1
-
2
- import { fromJS } from 'immutable';
3
- import templatesReducer from '../reducer';
4
-
5
- describe('templatesReducer', () => {
6
- it('returns the initial state', () => {
7
- expect(templatesReducer(undefined, {})).toEqual(fromJS({}));
8
- });
9
- });
1
+
2
+ import { fromJS } from 'immutable';
3
+ import templatesReducer from '../reducer';
4
+
5
+ describe('templatesReducer', () => {
6
+ it('returns the initial state', () => {
7
+ expect(templatesReducer(undefined, {})).toEqual(fromJS({}));
8
+ });
9
+ });
@@ -1,15 +1,15 @@
1
- /**
2
- * Test sagas
3
- */
4
-
5
- /* eslint-disable redux-saga/yield-effects */
6
- // import { take, call, put, select } from 'redux-saga/effects';
7
- // import { defaultSaga } from '../sagas';
8
-
9
- // const generator = defaultSaga();
10
-
11
- describe('defaultSaga Saga', () => {
12
- it('Expect to have unit tests specified', () => {
13
- expect(true).toEqual(false);
14
- });
15
- });
1
+ /**
2
+ * Test sagas
3
+ */
4
+
5
+ /* eslint-disable redux-saga/yield-effects */
6
+ // import { take, call, put, select } from 'redux-saga/effects';
7
+ // import { defaultSaga } from '../sagas';
8
+
9
+ // const generator = defaultSaga();
10
+
11
+ describe('defaultSaga Saga', () => {
12
+ it('Expect to have unit tests specified', () => {
13
+ expect(true).toEqual(false);
14
+ });
15
+ });
@@ -1,10 +1,10 @@
1
- // import { fromJS } from 'immutable';
2
- // import { makeSelectTemplatesDomain } from '../selectors';
3
-
4
- // const selector = makeSelectTemplatesDomain();
5
-
6
- describe('makeSelectTemplatesDomain', () => {
7
- it('Expect to have unit tests specified', () => {
8
- expect(true).toEqual(false);
9
- });
10
- });
1
+ // import { fromJS } from 'immutable';
2
+ // import { makeSelectTemplatesDomain } from '../selectors';
3
+
4
+ // const selector = makeSelectTemplatesDomain();
5
+
6
+ describe('makeSelectTemplatesDomain', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -1,29 +1,29 @@
1
- import { css } from 'styled-components';
2
- import {CAP_SPACE_24, CAP_SPACE_16} from '@capillarytech/cap-ui-library/styled/variables';
3
-
4
- export default css`
5
- .cap-tab-v2-wrapper{
6
- .ant-tabs-tabpane {
7
- border: none;
8
- }
9
- }
10
-
11
- .component-wrapper {
12
- ${(props) => props.isFullMode ? `
13
- max-width: 1140px;
14
- margin: 0 auto;
15
- width: 100%;
16
- padding: ${CAP_SPACE_24} 0;
17
- .ant-tabs-content{
18
- margin-top: ${CAP_SPACE_16}
19
- }
20
- ` : `.cap-tab-v2 {
21
- height: calc(100vh - 118px);
22
- } `}
23
- }
24
- `;
25
-
26
- export const CapTabStyle = css`
27
- ${(props) => props.isFullMode ? `margin-top: ${CAP_SPACE_24}` : ``
28
- }
29
- `;
1
+ import { css } from 'styled-components';
2
+ import {CAP_SPACE_24, CAP_SPACE_16} from '@capillarytech/cap-ui-library/styled/variables';
3
+
4
+ export default css`
5
+ .cap-tab-v2-wrapper{
6
+ .ant-tabs-tabpane {
7
+ border: none;
8
+ }
9
+ }
10
+
11
+ .component-wrapper {
12
+ ${(props) => props.isFullMode ? `
13
+ max-width: 1140px;
14
+ margin: 0 auto;
15
+ width: 100%;
16
+ padding: ${CAP_SPACE_24} 0;
17
+ .ant-tabs-content{
18
+ margin-top: ${CAP_SPACE_16}
19
+ }
20
+ ` : `.cap-tab-v2 {
21
+ height: calc(100vh - 118px);
22
+ } `}
23
+ }
24
+ `;
25
+
26
+ export const CapTabStyle = css`
27
+ ${(props) => props.isFullMode ? `margin-top: ${CAP_SPACE_24}` : ``
28
+ }
29
+ `;
@@ -1,16 +1,16 @@
1
-
2
- import * as types from './constants';
3
-
4
- export function defaultAction() {
5
- return {
6
- type: types.DEFAULT_ACTION,
7
- };
8
- }
9
-
10
- export function getTemplates({channel, query}) {
11
- return {
12
- type: types.GET_TEMPLATES_REQUEST,
13
- channel,
14
- query,
15
- };
16
- }
1
+
2
+ import * as types from './constants';
3
+
4
+ export function defaultAction() {
5
+ return {
6
+ type: types.DEFAULT_ACTION,
7
+ };
8
+ }
9
+
10
+ export function getTemplates({channel, query}) {
11
+ return {
12
+ type: types.GET_TEMPLATES_REQUEST,
13
+ channel,
14
+ query,
15
+ };
16
+ }
@@ -1,10 +1,10 @@
1
- /*
2
- *
3
- * TemplatesV2 constants
4
- *
5
- */
6
-
7
- export const DEFAULT_ACTION = 'app/TemplatesV2/DEFAULT_ACTION';
8
- export const GET_TEMPLATES_REQUEST = 'app/TemplatesV2/GET_TEMPLATES_REQUEST';
9
- export const GET_TEMPLATES_SUCESS = 'app/TemplatesV2/GET_TEMPLATES_SUCESS';
10
- export const GET_TEMPLATES_FAILURE = 'app/TemplatesV2/GET_TEMPLATES_FAILURE';
1
+ /*
2
+ *
3
+ * TemplatesV2 constants
4
+ *
5
+ */
6
+
7
+ export const DEFAULT_ACTION = 'app/TemplatesV2/DEFAULT_ACTION';
8
+ export const GET_TEMPLATES_REQUEST = 'app/TemplatesV2/GET_TEMPLATES_REQUEST';
9
+ export const GET_TEMPLATES_SUCESS = 'app/TemplatesV2/GET_TEMPLATES_SUCESS';
10
+ export const GET_TEMPLATES_FAILURE = 'app/TemplatesV2/GET_TEMPLATES_FAILURE';
@@ -1,25 +1,25 @@
1
- import { createSelector } from 'reselect';
2
-
3
- /**
4
- * Direct selector to the templatesV2 state domain
5
- */
6
- const selectTemplatesV2Domain = () => (state) => state.get('templatesV2');
7
-
8
- /**
9
- * Other specific selectors
10
- */
11
-
12
-
13
- /**
14
- * Default selector used by TemplatesV2
15
- */
16
-
17
- const makeSelectTemplatesV2 = () => createSelector(
18
- selectTemplatesV2Domain(),
19
- (substate) => substate.toJS()
20
- );
21
-
22
- export default makeSelectTemplatesV2;
23
- export {
24
- selectTemplatesV2Domain,
25
- };
1
+ import { createSelector } from 'reselect';
2
+
3
+ /**
4
+ * Direct selector to the templatesV2 state domain
5
+ */
6
+ const selectTemplatesV2Domain = () => (state) => state.get('templatesV2');
7
+
8
+ /**
9
+ * Other specific selectors
10
+ */
11
+
12
+
13
+ /**
14
+ * Default selector used by TemplatesV2
15
+ */
16
+
17
+ const makeSelectTemplatesV2 = () => createSelector(
18
+ selectTemplatesV2Domain(),
19
+ (substate) => substate.toJS()
20
+ );
21
+
22
+ export default makeSelectTemplatesV2;
23
+ export {
24
+ selectTemplatesV2Domain,
25
+ };
@@ -1,18 +1,18 @@
1
-
2
- import {
3
- defaultAction,
4
- } from '../actions';
5
- import {
6
- DEFAULT_ACTION,
7
- } from '../constants';
8
-
9
- describe('TemplatesV2 actions', () => {
10
- describe('Default Action', () => {
11
- it('has a type of DEFAULT_ACTION', () => {
12
- const expected = {
13
- type: DEFAULT_ACTION,
14
- };
15
- expect(defaultAction()).toEqual(expected);
16
- });
17
- });
18
- });
1
+
2
+ import {
3
+ defaultAction,
4
+ } from '../actions';
5
+ import {
6
+ DEFAULT_ACTION,
7
+ } from '../constants';
8
+
9
+ describe('TemplatesV2 actions', () => {
10
+ describe('Default Action', () => {
11
+ it('has a type of DEFAULT_ACTION', () => {
12
+ const expected = {
13
+ type: DEFAULT_ACTION,
14
+ };
15
+ expect(defaultAction()).toEqual(expected);
16
+ });
17
+ });
18
+ });