@capillarytech/creatives-library 6.11.8 → 6.12.0

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 (59) hide show
  1. package/components/TemplatePreview/index.js +2 -1
  2. package/containers/Cap/actions.js +2 -1
  3. package/containers/Cap/index.js +12 -5
  4. package/containers/Cap/sagas.js +4 -1
  5. package/global-styles.js +4 -0
  6. package/package.json +1 -1
  7. package/v2Components/AccessForbidden/index.js +20 -0
  8. package/v2Components/AccessForbidden/messages.js +14 -0
  9. package/v2Components/NavigationBar/messages.js +13 -13
  10. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +151 -151
  11. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +33 -33
  12. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -10
  13. package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +44 -44
  14. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -21
  15. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -16
  16. package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +134 -134
  17. package/v2Components/TemplatePreview/assets/images/mobile.svg +23 -23
  18. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -22
  19. package/v2Components/TemplatePreview/assets/images/user-icon.svg +18 -18
  20. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -21
  21. package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +77 -77
  22. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -20
  23. package/v2Components/TemplatePreview/index.js +2 -1
  24. package/v2Components/TemplatePreview/tests/index.test.js +10 -10
  25. package/v2Containers/App/constants.js +2 -0
  26. package/v2Containers/Cap/index.js +8 -2
  27. package/v2Containers/CreativesContainer/actions.js +27 -27
  28. package/v2Containers/CreativesContainer/constants.js +17 -17
  29. package/v2Containers/CreativesContainer/index.scss +44 -44
  30. package/v2Containers/CreativesContainer/messages.js +305 -305
  31. package/v2Containers/CreativesContainer/reducer.js +29 -29
  32. package/v2Containers/CreativesContainer/sagas.js +11 -11
  33. package/v2Containers/CreativesContainer/selectors.js +30 -30
  34. package/v2Containers/CreativesContainer/tests/actions.test.js +18 -18
  35. package/v2Containers/CreativesContainer/tests/index.test.js +10 -10
  36. package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -9
  37. package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -15
  38. package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -10
  39. package/v2Containers/Line/Container/Video/index.js +4 -1
  40. package/v2Containers/Templates/tests/actions.test.js +18 -18
  41. package/v2Containers/Templates/tests/index.test.js +10 -10
  42. package/v2Containers/Templates/tests/reducer.test.js +9 -9
  43. package/v2Containers/Templates/tests/sagas.test.js +15 -15
  44. package/v2Containers/Templates/tests/selectors.test.js +10 -10
  45. package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -29
  46. package/v2Containers/TemplatesV2/actions.js +16 -16
  47. package/v2Containers/TemplatesV2/constants.js +10 -10
  48. package/v2Containers/TemplatesV2/index.js +27 -17
  49. package/v2Containers/TemplatesV2/messages.js +61 -61
  50. package/v2Containers/TemplatesV2/selectors.js +25 -25
  51. package/v2Containers/TemplatesV2/tests/actions.test.js +18 -18
  52. package/v2Containers/TemplatesV2/tests/index.test.js +10 -10
  53. package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -9
  54. package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -15
  55. package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -10
  56. package/v2Components/BeeEditor/index.js +0 -263
  57. package/v2Components/BeeEditor/index.scss +0 -11
  58. package/v2Components/BeeEditor/messages.js +0 -71
  59. package/v2Components/BeeEditor/tests/index.test.js +0 -10
@@ -217,6 +217,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
217
217
  alignItems: 'center',
218
218
  backgroundColor: !video ? 'transparent' : CAP_G06,
219
219
  marginTop: 0,
220
+ padding: 0,
220
221
  }}
221
222
  key={video}
222
223
  >
@@ -224,7 +225,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
224
225
  video
225
226
  ? (
226
227
  <>
227
- <video width="150" style={{ opacity: 0.5 }}>
228
+ <video style={{ opacity: 0.5, width: '100%' }}>
228
229
  <source src={video} type="video/mp4" />
229
230
  </video>
230
231
  <div
@@ -38,9 +38,10 @@ export function removeMessageFromQueue(messageIndex) {
38
38
  };
39
39
  }
40
40
 
41
- export function getUserData() {
41
+ export function getUserData(callback) {
42
42
  return {
43
43
  type: types.GET_USER_DATA_REQUEST,
44
+ callback,
44
45
  };
45
46
  }
46
47
 
@@ -22,6 +22,9 @@ import config from '../../config/app';
22
22
  import Toastr from '../../components/Toastr';
23
23
  import messages from './messages';
24
24
  import { makeSelectLocale } from '../../v2Containers/LanguageProvider/selectors';
25
+ import { CREATIVES_UI_VIEW } from '../../v2Containers/App/constants';
26
+ import AccessForbidden from '../../v2Components/AccessForbidden';
27
+
25
28
  const gtm = window.dataLayer || [];
26
29
 
27
30
  const CapWrapper = styled.div`
@@ -39,6 +42,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
39
42
  this.state = {
40
43
  menuData: [],
41
44
  switchedOrg: false,
45
+ isCreativesAccessible: true,
42
46
  };
43
47
  this.changeOrg = this.changeOrg.bind(this);
44
48
  this.logout = this.logout.bind(this);
@@ -47,7 +51,11 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
47
51
  }
48
52
 
49
53
  componentWillMount() {
50
- this.props.actions.getUserData();
54
+ this.props.actions.getUserData((userData) => {
55
+ if (!userData.accessiblePermissions.includes(CREATIVES_UI_VIEW)) {
56
+ this.setState({ isCreativesAccessible: false });
57
+ }
58
+ });
51
59
  if (this.props.Global.user) {
52
60
  const userGtmData = this.getUserGtmData(this.props);
53
61
  gtm.push(userGtmData);
@@ -195,14 +203,12 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
195
203
  const type = this.props.location.query.type;
196
204
  // const changeOrg = this.props.actions.changeOrg;
197
205
  // const logout = this.props.actions.logout;
198
- console.log('props', this.props);
199
206
  const proxyOrgList = [];
200
207
  let defaultOrgName = '';
201
208
  let defaultOrgId = '';
202
209
  let userName = '';
203
210
  const navigateToDashboard = this.navigateToDashboard;
204
211
  if (userData && userData.user && userData.user !== '') {
205
- console.log('Org name ', userData.user.orgName, userData.user.orgID);
206
212
  defaultOrgName = userData.user.orgName;
207
213
  defaultOrgId = userData.user.orgID;
208
214
  proxyOrgList.push({ text: defaultOrgName, value: defaultOrgId });
@@ -272,6 +278,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
272
278
  ],
273
279
  },
274
280
  ];
281
+ const { isCreativesAccessible } = this.state;
275
282
  return (
276
283
  <CapWrapper>
277
284
  { this.props.loader.localeLoading || this.props.Global.fetching_userdata ?
@@ -301,7 +308,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
301
308
  logout={this.logout}
302
309
  /> : ''}
303
310
  <div className="main">
304
- {loggedIn && type !== 'embedded' && this.props.location.pathname.indexOf('v2') === -1 ? <div id="cap-sidebar" className={'sidebar'}>
311
+ {isCreativesAccessible && loggedIn && type !== 'embedded' && this.props.location.pathname.indexOf('v2') === -1 ? <div id="cap-sidebar" className={'sidebar'}>
305
312
  <Sidebar
306
313
  menuData={menuData}
307
314
  actionComponents={actionComponents}
@@ -309,7 +316,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
309
316
  />
310
317
  </div> : '' }
311
318
  <div className="main-content">
312
- {React.Children.toArray(this.props.children)}
319
+ {!isCreativesAccessible ? <AccessForbidden /> : React.Children.toArray(this.props.children)}
313
320
  </div>
314
321
  </div>
315
322
  </div>
@@ -68,7 +68,7 @@ function* logoutFlow() {
68
68
  }
69
69
  }
70
70
 
71
- export function* fetchUserInfo() {
71
+ export function* fetchUserInfo({ callback }) {
72
72
  try {
73
73
  const result = yield call(Api.getUserData);
74
74
  const userData = result.user;
@@ -87,6 +87,9 @@ export function* fetchUserInfo() {
87
87
  },
88
88
  ];
89
89
  }
90
+ if (callback) {
91
+ callback(userData);
92
+ }
90
93
  yield call(LocalStorage.saveItem, 'orgID', result.currentOrgId);
91
94
  yield call(LocalStorage.saveItem, 'user', userData);
92
95
  yield put({type: types.GET_USER_DATA_SUCCESS, userData, currentOrgId: result.currentOrgId, currentOrgDetails});
package/global-styles.js CHANGED
@@ -13,4 +13,8 @@ injectGlobal`
13
13
  min-height: 100%;
14
14
  min-width: 100%;
15
15
  }
16
+
17
+ .text-align-center {
18
+ text-align: center;
19
+ }
16
20
  `;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "6.11.8",
4
+ "version": "6.12.0",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { FormattedMessage } from 'react-intl';
3
+ import { CapRow, CapHeading } from '@capillarytech/cap-ui-library';
4
+ import messages from './messages';
5
+
6
+ const AccessForbidden = () => {
7
+ console.log('NIKHIL access');
8
+ return (
9
+ <CapRow className="margin-t-32 text-align-center">
10
+ <CapHeading type="h2">
11
+ <FormattedMessage {...messages.forbiddenHeader} />
12
+ </CapHeading>
13
+ <CapHeading type="h3" className="margin-t-24">
14
+ <FormattedMessage {...messages.forbiddenDesc} />
15
+ </CapHeading>
16
+ </CapRow>
17
+ );
18
+ };
19
+
20
+ export default AccessForbidden;
@@ -0,0 +1,14 @@
1
+ import { defineMessages } from 'react-intl';
2
+
3
+ const prefix = 'creatives.components.AccessForbidden';
4
+
5
+ export default defineMessages({
6
+ forbiddenHeader: {
7
+ id: `${prefix}.forbiddenHeader`,
8
+ defaultMessage: 'Access Forbidden',
9
+ },
10
+ forbiddenDesc: {
11
+ id: `${prefix}.forbiddenDesc`,
12
+ defaultMessage: 'This page access has not been provided to you.',
13
+ },
14
+ });
@@ -9,51 +9,51 @@ import { defineMessages } from 'react-intl';
9
9
  export const scope = 'creatives.componentsV2.NavigationBar';
10
10
 
11
11
  export default defineMessages({
12
- header: {
12
+ "header": {
13
13
  id: `${scope}.header`,
14
14
  defaultMessage: 'This is the NavigationBar component!',
15
15
  },
16
- selectedProductDefault: {
16
+ "selectedProductDefault": {
17
17
  id: `${scope}.selectedProductDefault`,
18
18
  defaultMessage: 'Engage+',
19
19
  },
20
- insights: {
20
+ "insights": {
21
21
  id: `${scope}.insights`,
22
22
  defaultMessage: 'Insights+',
23
23
  },
24
- orgSettings: {
24
+ "orgSettings": {
25
25
  id: `${scope}.orgSettings`,
26
26
  defaultMessage: 'Organisation settings',
27
27
  },
28
- logout: {
28
+ "logout": {
29
29
  id: `${scope}.logout`,
30
30
  defaultMessage: 'Logout',
31
31
  },
32
- businessProcesses: {
32
+ "businessProcesses": {
33
33
  id: `${scope}.businessProcesses`,
34
34
  defaultMessage: 'Workbench',
35
35
  },
36
- campaign: {
37
- id: `${scope}.campaign`,
36
+ 'campaigns/ui/list': {
37
+ id: `${scope}.campaigns/ui/list`,
38
38
  defaultMessage: 'Engage+',
39
39
  },
40
- wecrm: {
40
+ "wecrm": {
41
41
  id: `${scope}.wecrm`,
42
42
  defaultMessage: 'Wecrm',
43
43
  },
44
- loyaltyProgram: {
44
+ "loyaltyProgram": {
45
45
  id: `${scope}.loyaltyProgram`,
46
46
  defaultMessage: 'Loyalty+',
47
47
  },
48
- storePerformance: {
48
+ "storePerformance": {
49
49
  id: `${scope}.storePerformance`,
50
50
  defaultMessage: 'Store Performance',
51
51
  },
52
- memberCare: {
52
+ "memberCare": {
53
53
  id: `${scope}.memberCare`,
54
54
  defaultMessage: 'Member Care',
55
55
  },
56
- storeCare: {
56
+ "storeCare": {
57
57
  id: `${scope}.storeCare`,
58
58
  defaultMessage: 'Store Care',
59
59
  },
@@ -1,152 +1,152 @@
1
- @import '~@capillarytech/cap-ui-library/styles/_variables.scss';
2
-
3
- .shell-lock-screen-android .main-screen-preview .wechatMsgContainer{
4
- position: absolute;
5
- left: 53.5%;
6
- top:28%;
7
- background: white;
8
- width: 19.5%;
9
- text-align: left;
10
- height: fit-content;
11
- border-radius: 0.285rem;
12
- }
13
-
14
- .shell-lock-screen-android .lock-screen-preview{
15
- .wechat-android-sender-id{
16
- position: absolute;
17
- top: 46%;
18
- font-size: 10px;
19
- left: 28%;
20
- }
21
- .wechat-android-title{
22
- position: absolute;
23
- top: 49%;
24
- font-size: 10px;
25
- left: 28%;
26
- color: #5e6c84;
27
- }
28
- .wechat-android-action-buttons{
29
- position: absolute;
30
- left: 28%;
31
- top: 53%;
32
- font-size: 10px;
33
- color: #3861ca;
34
- font-weight: 500;
35
- }
36
- .wechat-ios-sender-id{
37
- position: absolute;
38
- top: 44%;
39
- font-size: 10px;
40
- left: 28.5%;
41
- }
42
- .wechat-ios-title{
43
- position: absolute;
44
- top: 47%;
45
- font-size: 10px;
46
- left: 28.5%;
47
- color: #5e6c84;
48
- }
49
- .wechat-ios-action-reply{
50
- position: absolute;
51
- left: 35%;
52
- top: 59%;
53
- font-size: 12px;
54
- color: #3861ca;
55
- font-weight: 500;
56
- }
57
- .wechat-ios-action-cancel{
58
- position: absolute;
59
- left: 34.5%;
60
- top: 66%;
61
- font-size: 12px;
62
- color: #3861ca;
63
- font-weight: 500;
64
- }
65
- }
66
-
67
- .wechatMsgContainer{
68
- position: absolute;
69
- left: 30%;
70
- top: 20%;
71
- background: white;
72
- width: 40%;
73
- text-align: left;
74
- height: fit-content;
75
- border-radius: $CAP_SPACE_04;
76
- .richmedia-template {
77
- .richmedia-image-container {
78
- width: 100%;
79
- height: 102px;
80
- position: relative;
81
- img {
82
- border-top-left-radius: 4px;
83
- border-top-right-radius: 4px;
84
- }
85
- }
86
- .name-container-with-abstract {
87
- padding: $CAP_SPACE_12;
88
- height: 68px;
89
- }
90
- .name-container {
91
- position: absolute;
92
- bottom: 0px;
93
- height: 44px;
94
- padding-top: 16px;
95
- padding-left: 12px;
96
- color: $CAP_WHITE;
97
- opacity: 0.7;
98
- width: 100%;
99
- background-image: linear-gradient(to top,black 0% ,transparent 100%);
100
- }
101
- .additional-richmedia-container {
102
- display: flex;
103
- justify-content: space-between;
104
- margin: 8px;
105
- padding-bottom: 8px;
106
- img {
107
- border-radius: 4px;
108
- }
109
- }
110
- .additional-richmedia-container:not(:last-child) {
111
- border-bottom: 1px solid #dfe2e7;
112
- }
113
- div {
114
- text-overflow: ellipsis;
115
- overflow: hidden;
116
- white-space: nowrap;
117
- }
118
- }
119
- }
120
- .wechatMsgContainerOutbound{
121
- position: absolute;
122
- left: 35%;
123
- top: 20%;
124
- background: white;
125
- width: 30%;
126
- text-align: left;
127
- }
128
- .wechatMsgContainerCardLayout {
129
- position: absolute;
130
- left: 20%;
131
- top: 20%;
132
- background: white;
133
- width: 60%;
134
- text-align: left;
135
- }
136
- .overflow-handle-preview {
137
- overflow-y: auto;
138
- }
139
- .overflow-handle-preview-outbound {
140
- height: 330px;
141
- overflow-y: auto;
142
- }
143
- .preview-overflow-wrap-fields {
144
- text-overflow: ellipsis;
145
- overflow: hidden;
146
- overflow-wrap: break-word;
147
- display: -webkit-box !important;
148
- -webkit-box-orient: vertical;
149
- -webkit-line-clamp: 2;
150
- text-align: left;
151
- width: 200px;
1
+ @import '~@capillarytech/cap-ui-library/styles/_variables.scss';
2
+
3
+ .shell-lock-screen-android .main-screen-preview .wechatMsgContainer{
4
+ position: absolute;
5
+ left: 53.5%;
6
+ top:28%;
7
+ background: white;
8
+ width: 19.5%;
9
+ text-align: left;
10
+ height: fit-content;
11
+ border-radius: 0.285rem;
12
+ }
13
+
14
+ .shell-lock-screen-android .lock-screen-preview{
15
+ .wechat-android-sender-id{
16
+ position: absolute;
17
+ top: 46%;
18
+ font-size: 10px;
19
+ left: 28%;
20
+ }
21
+ .wechat-android-title{
22
+ position: absolute;
23
+ top: 49%;
24
+ font-size: 10px;
25
+ left: 28%;
26
+ color: #5e6c84;
27
+ }
28
+ .wechat-android-action-buttons{
29
+ position: absolute;
30
+ left: 28%;
31
+ top: 53%;
32
+ font-size: 10px;
33
+ color: #3861ca;
34
+ font-weight: 500;
35
+ }
36
+ .wechat-ios-sender-id{
37
+ position: absolute;
38
+ top: 44%;
39
+ font-size: 10px;
40
+ left: 28.5%;
41
+ }
42
+ .wechat-ios-title{
43
+ position: absolute;
44
+ top: 47%;
45
+ font-size: 10px;
46
+ left: 28.5%;
47
+ color: #5e6c84;
48
+ }
49
+ .wechat-ios-action-reply{
50
+ position: absolute;
51
+ left: 35%;
52
+ top: 59%;
53
+ font-size: 12px;
54
+ color: #3861ca;
55
+ font-weight: 500;
56
+ }
57
+ .wechat-ios-action-cancel{
58
+ position: absolute;
59
+ left: 34.5%;
60
+ top: 66%;
61
+ font-size: 12px;
62
+ color: #3861ca;
63
+ font-weight: 500;
64
+ }
65
+ }
66
+
67
+ .wechatMsgContainer{
68
+ position: absolute;
69
+ left: 30%;
70
+ top: 20%;
71
+ background: white;
72
+ width: 40%;
73
+ text-align: left;
74
+ height: fit-content;
75
+ border-radius: $CAP_SPACE_04;
76
+ .richmedia-template {
77
+ .richmedia-image-container {
78
+ width: 100%;
79
+ height: 102px;
80
+ position: relative;
81
+ img {
82
+ border-top-left-radius: 4px;
83
+ border-top-right-radius: 4px;
84
+ }
85
+ }
86
+ .name-container-with-abstract {
87
+ padding: $CAP_SPACE_12;
88
+ height: 68px;
89
+ }
90
+ .name-container {
91
+ position: absolute;
92
+ bottom: 0px;
93
+ height: 44px;
94
+ padding-top: 16px;
95
+ padding-left: 12px;
96
+ color: $CAP_WHITE;
97
+ opacity: 0.7;
98
+ width: 100%;
99
+ background-image: linear-gradient(to top,black 0% ,transparent 100%);
100
+ }
101
+ .additional-richmedia-container {
102
+ display: flex;
103
+ justify-content: space-between;
104
+ margin: 8px;
105
+ padding-bottom: 8px;
106
+ img {
107
+ border-radius: 4px;
108
+ }
109
+ }
110
+ .additional-richmedia-container:not(:last-child) {
111
+ border-bottom: 1px solid #dfe2e7;
112
+ }
113
+ div {
114
+ text-overflow: ellipsis;
115
+ overflow: hidden;
116
+ white-space: nowrap;
117
+ }
118
+ }
119
+ }
120
+ .wechatMsgContainerOutbound{
121
+ position: absolute;
122
+ left: 35%;
123
+ top: 20%;
124
+ background: white;
125
+ width: 30%;
126
+ text-align: left;
127
+ }
128
+ .wechatMsgContainerCardLayout {
129
+ position: absolute;
130
+ left: 20%;
131
+ top: 20%;
132
+ background: white;
133
+ width: 60%;
134
+ text-align: left;
135
+ }
136
+ .overflow-handle-preview {
137
+ overflow-y: auto;
138
+ }
139
+ .overflow-handle-preview-outbound {
140
+ height: 330px;
141
+ overflow-y: auto;
142
+ }
143
+ .preview-overflow-wrap-fields {
144
+ text-overflow: ellipsis;
145
+ overflow: hidden;
146
+ overflow-wrap: break-word;
147
+ display: -webkit-box !important;
148
+ -webkit-box-orient: vertical;
149
+ -webkit-line-clamp: 2;
150
+ text-align: left;
151
+ width: 200px;
152
152
  }
@@ -1,33 +1,33 @@
1
- /*
2
- * WechatRichmediaTemplatePreview Messages
3
- *
4
- * This contains all the text for the WechatRichmediaTemplatePreview component.
5
- */
6
- import { defineMessages } from 'react-intl';
7
-
8
- export default defineMessages({
9
- header: {
10
- id: 'creatives.components.WechatRichmediaTemplatePreview.header',
11
- defaultMessage: 'This is the WechatRichmediaTemplatePreview component !',
12
- },
13
- select: {
14
- id: 'creatives.components.WechatRichmediaTemplatePreview.select',
15
- defaultMessage: 'Select',
16
- },
17
- edit: {
18
- id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
19
- defaultMessage: 'Edit',
20
- },
21
- MarkAsRead: {
22
- id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
23
- defaultMessage: 'Mark as read',
24
- },
25
- reply: {
26
- id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
27
- defaultMessage: 'Reply',
28
- },
29
- cancel: {
30
- id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
31
- defaultMessage: 'Cancel',
32
- },
33
- });
1
+ /*
2
+ * WechatRichmediaTemplatePreview Messages
3
+ *
4
+ * This contains all the text for the WechatRichmediaTemplatePreview component.
5
+ */
6
+ import { defineMessages } from 'react-intl';
7
+
8
+ export default defineMessages({
9
+ header: {
10
+ id: 'creatives.components.WechatRichmediaTemplatePreview.header',
11
+ defaultMessage: 'This is the WechatRichmediaTemplatePreview component !',
12
+ },
13
+ select: {
14
+ id: 'creatives.components.WechatRichmediaTemplatePreview.select',
15
+ defaultMessage: 'Select',
16
+ },
17
+ edit: {
18
+ id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
19
+ defaultMessage: 'Edit',
20
+ },
21
+ MarkAsRead: {
22
+ id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
23
+ defaultMessage: 'Mark as read',
24
+ },
25
+ reply: {
26
+ id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
27
+ defaultMessage: 'Reply',
28
+ },
29
+ cancel: {
30
+ id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
31
+ defaultMessage: 'Cancel',
32
+ },
33
+ });
@@ -1,10 +1,10 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import WechatRichmediaTemplatePreview from '../index';
5
-
6
- describe('<WechatRichmediaTemplatePreview />', () => {
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 WechatRichmediaTemplatePreview from '../index';
5
+
6
+ describe('<WechatRichmediaTemplatePreview />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });