@capillarytech/creatives-library 3.2.3 → 3.3.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 (63) hide show
  1. package/components/FormBuilder/index.js +1 -1
  2. package/components/Header/index.js +4 -3
  3. package/components/Header/messages.js +4 -0
  4. package/config/app.js +1 -1
  5. package/containers/Assets/Gallery/index.js +1 -1
  6. package/containers/Cap/index.js +3 -5
  7. package/containers/Email/index.js +2 -2
  8. package/containers/Email/messages.js +8 -0
  9. package/containers/LanguageProvider/index.js +2 -1
  10. package/containers/Templates/index.js +2 -2
  11. package/containers/Templates/messages.js +24 -4
  12. package/containers/WeChat/RichmediaTemplates/Create/messages.js +24 -0
  13. package/i18n.js +16 -9
  14. package/package.json +1 -1
  15. package/translations/en.json +108 -60
  16. package/translations/zh.json +108 -60
  17. package/utils/smsCharCountV2.js +1 -1
  18. package/v2Components/CapTagList/index.js +2 -2
  19. package/v2Components/FormBuilder/index.js +5 -2
  20. package/v2Components/NavigationBar/index.js +9 -10
  21. package/v2Components/NewCallTask/index.js +3 -1
  22. package/v2Components/TopBar/index.js +3 -0
  23. package/v2Components/TopBar/messages.js +8 -0
  24. package/v2Containers/Assets/Gallery/index.js +1 -1
  25. package/v2Containers/Assets/Gallery/messages.js +4 -0
  26. package/v2Containers/CallTask/index.js +3 -1
  27. package/v2Containers/Cap/index.js +3 -2
  28. package/v2Containers/CreativesContainer/SlideBoxContent.js +11 -1
  29. package/v2Containers/CreativesContainer/index.js +4 -1
  30. package/v2Containers/Email/index.js +5 -2
  31. package/v2Containers/Email/messages.js +8 -0
  32. package/v2Containers/EmailWrapper/index.js +3 -0
  33. package/v2Containers/LanguageProvider/constants.js +0 -1
  34. package/v2Containers/LanguageProvider/index.js +2 -0
  35. package/v2Containers/LanguageProvider/reducer.js +1 -7
  36. package/v2Containers/MobilePush/Create/index.js +2 -1
  37. package/v2Containers/MobilePush/Create/messages.js +4 -0
  38. package/v2Containers/MobilePush/Edit/index.js +2 -1
  39. package/v2Containers/MobilePush/Edit/messages.js +4 -0
  40. package/v2Containers/Sms/Create/index.js +3 -1
  41. package/v2Containers/Sms/Create/messages.js +16 -0
  42. package/v2Containers/Sms/Edit/index.js +3 -1
  43. package/v2Containers/Sms/Edit/messages.js +16 -0
  44. package/v2Containers/TagList/index.js +43 -0
  45. package/v2Containers/Templates/_templates.scss +9 -1
  46. package/v2Containers/Templates/index.js +65 -52
  47. package/v2Containers/TemplatesV2/index.js +1 -0
  48. package/v2Containers/WeChat/MapTemplates/index.js +0 -1
  49. package/v2Containers/WeChat/RichmediaTemplates/Create/_createRichmedia.scss +10 -0
  50. package/v2Containers/WeChat/RichmediaTemplates/Create/actions.js +9 -0
  51. package/v2Containers/WeChat/RichmediaTemplates/Create/constants.js +3 -0
  52. package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +146 -4
  53. package/v2Containers/WeChat/RichmediaTemplates/Create/messages.js +86 -57
  54. package/v2Containers/WeChat/RichmediaTemplates/Create/reducer.js +24 -1
  55. package/v2Containers/WeChat/RichmediaTemplates/Create/sagas.js +45 -0
  56. package/v2Containers/WeChat/RichmediaTemplates/Edit/constants.js +4 -0
  57. package/v2Containers/WeChat/RichmediaTemplates/Edit/index.js +8 -1
  58. package/v2Containers/WeChat/Wrapper/_wrapper.scss +9 -1
  59. package/v2Containers/WeChat/Wrapper/messages.js +5 -5
  60. package/containers/Cap/messsages.js +0 -63
  61. package/v2Components/Header/index.js +0 -46
  62. package/v2Components/Header/tests/index.test.js +0 -10
  63. package/v2Containers/TemplatesV2/_templatesV2.scss +0 -5
@@ -3191,7 +3191,7 @@ class FormBuilder extends React.Component { // eslint-disable-line react/prefer-
3191
3191
 
3192
3192
  FormBuilder.defaultProps = {
3193
3193
  isNewVersionFlow: false,
3194
- userLocale: 'en',
3194
+ userLocale: localStorage.getItem('jlocale') || 'en',
3195
3195
  };
3196
3196
 
3197
3197
  FormBuilder.propTypes = {
@@ -7,7 +7,7 @@
7
7
  import PropTypes from 'prop-types';
8
8
 
9
9
  import React from 'react';
10
- import { FormattedMessage } from 'react-intl';
10
+ import { FormattedMessage, injectIntl, intlShape } from 'react-intl';
11
11
  import { CapRow, CapColumn, CapInput, CapButton } from '@capillarytech/cap-react-ui-library';
12
12
  import messages from './messages';
13
13
 
@@ -16,7 +16,7 @@ function Header(props) {
16
16
  <div>
17
17
  <CapRow className="template-form-header">
18
18
  <CapColumn span={10}>
19
- <CapInput id="template-name" placeholder="Enter template name*" defaultValue={props.templateName} type="input" onChange={props.templateNameHandler}/>
19
+ <CapInput id="template-name" placeholder={props.intl.formatMessage(messages.enterTemplateName)} defaultValue={props.templateName} type="input" onChange={props.templateNameHandler}/>
20
20
  </CapColumn>
21
21
  <CapColumn span={2} offset={8}>
22
22
  <CapButton id="preview-button" type="cancel" onClick={props.previewHandler}> <FormattedMessage {...messages.preview} /> </CapButton>
@@ -38,6 +38,7 @@ Header.propTypes = {
38
38
  cancelHandler: PropTypes.func,
39
39
  saveHandler: PropTypes.func,
40
40
  templateName: PropTypes.string,
41
+ intl: intlShape.isRequired,
41
42
  };
42
43
 
43
- export default Header;
44
+ export default injectIntl(Header);
@@ -22,4 +22,8 @@ export default defineMessages({
22
22
  id: 'creatives.components.Header.save',
23
23
  defaultMessage: 'Save',
24
24
  },
25
+ enterTemplateName: {
26
+ id: 'creatives.components.Header.enterTemplateName',
27
+ defaultMessage: 'Enter template name*',
28
+ },
25
29
  });
package/config/app.js CHANGED
@@ -9,7 +9,7 @@ const config = {
9
9
  login_url: 'auth/login',
10
10
  dashboard_url: '/sms',
11
11
  dashboard_url_v2: '/v2',
12
- subscription_api_endpoint: '/arya/api/v1/subscription',
12
+ subscription_api_endpoint: '/arya/api/v1/org-settings/subscription',
13
13
  accountConfig: (strs, accountId) => `${window.location.origin}/org/config/AccountAdd?q=a&channelId=2&accountId=${accountId}&edit=1`,
14
14
  },
15
15
  development: {
@@ -382,7 +382,7 @@ export class Gallery extends React.Component { // eslint-disable-line react/pref
382
382
  <div>
383
383
  {/*<Spin spinning={this.props.Gallery.assetUploading || this.props.Gallery.fetchingAllAssets}>*/}
384
384
  <Helmet
385
- title="Gallery"
385
+ title={this.props.intl.formatMessage(messages.gallery)}
386
386
  />
387
387
  {/* this.props.location.query.type !== 'embedded' && <Row style={{marginBottom: '16px'}}>
388
388
  <Col>
@@ -164,8 +164,9 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
164
164
 
165
165
  getMappedLocale(locale) {
166
166
  const map = {
167
- 'en': 'en',
167
+ 'en': 'en-US',
168
168
  'zh-cn': 'zh',
169
+ 'en-US': 'en-US',
169
170
  'zh': 'zh',
170
171
  };
171
172
  return map[locale];
@@ -208,10 +209,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
208
209
  if (!_.isEmpty(orgList)) {
209
210
  _.forEach(orgList, (item) => {
210
211
  const id = item.orgID;
211
- let name = item.orgName;
212
- if (id === 486) {
213
- name = 'Demo Org';
214
- }
212
+ const name = item.orgName;
215
213
  proxyOrgList.push({ key: id, text: name, value: id });
216
214
  });
217
215
  }
@@ -3109,8 +3109,8 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
3109
3109
  );
3110
3110
  const schema = this.state.schema;
3111
3111
  const spinning = this.state.loading || (this.props.Email && "createTemplateInProgress" in this.props.Email && this.props.Email.createTemplateInProgress) || (this.props.Email.assetUploading !== undefined && this.props.Email.assetUploading);
3112
- const previewHeader = (<h3>Email Preview</h3>);
3113
- const imagePreviewHeader = (<h3>Image Selection</h3>);
3112
+ const previewHeader = (<h3>{this.props.intl.formatMessage(messages.h3emailPreview)}</h3>);
3113
+ const imagePreviewHeader = (<h3>{this.props.intl.formatMessage(messages.h3imageSelection)}</h3>);
3114
3114
  const imagePreviewContent = (
3115
3115
  <div>
3116
3116
  <div>
@@ -278,4 +278,12 @@ export default defineMessages({
278
278
  id: 'creatives.containers.Email.Create.creatives',
279
279
  defaultMessage: "Creatives",
280
280
  },
281
+ "h3emailPreview": {
282
+ id: 'creatives.containers.Email.Create.h3emailPreview',
283
+ defaultMessage: "Email preview",
284
+ },
285
+ "h3imageSelection": {
286
+ id: 'creatives.containers.Email.Create.h3imageSelection',
287
+ defaultMessage: "Image selection",
288
+ },
281
289
  });
@@ -15,7 +15,7 @@ import zhCN from 'antd/es/locale-provider/zh_CN';
15
15
  import { connect } from 'react-redux';
16
16
  import { createSelector } from 'reselect';
17
17
  import { IntlProvider } from 'react-intl';
18
-
18
+ import moment from 'moment';
19
19
  import { makeSelectLocale } from './selectors';
20
20
 
21
21
  export class LanguageProvider extends React.PureComponent { // eslint-disable-line react/prefer-stateless-function
@@ -37,6 +37,7 @@ export class LanguageProvider extends React.PureComponent { // eslint-disable-li
37
37
  zh: zhCN,
38
38
  };
39
39
  const jLocale = localStorage.getItem('jlocale') || 'en';
40
+ moment.locale(jLocale);
40
41
  const file = mappedLocale[jLocale];
41
42
  return (
42
43
  <ConfigProvider locale={file}>
@@ -1344,7 +1344,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1344
1344
  className="search-text"
1345
1345
  style={{width: '210px'}}
1346
1346
  placeholder={this.props.intl.formatMessage(messages.searchText)}
1347
- prefix={<i className="material-icons" style={{ margin: '0', fontSize: '16px'}}>{this.props.intl.formatMessage(messages.search)}</i>}
1347
+ prefix={<i className="material-icons" style={{ margin: '0', fontSize: '16px'}}>search</i>}
1348
1348
  value={this.state.searchText}
1349
1349
  onChange={(e) => this.searchTemplate(e.target.value)}
1350
1350
  />
@@ -1555,7 +1555,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
1555
1555
  <Breadcrumb>
1556
1556
  <BreadcrumbItem>{this.props.intl.formatMessage(messages.campaigns)}</BreadcrumbItem>
1557
1557
  <BreadcrumbItem>{this.props.intl.formatMessage(messages.creatives)}</BreadcrumbItem>
1558
- <BreadcrumbItem>{ this.state.channel }</BreadcrumbItem>
1558
+ <BreadcrumbItem>{this.props.intl.formatMessage(messages[this.state.channel]) }</BreadcrumbItem>
1559
1559
  </Breadcrumb>
1560
1560
  }
1561
1561
  </Col>
@@ -118,10 +118,6 @@ export default defineMessages({
118
118
  id: 'creatives.containers.Templates.useEditor',
119
119
  defaultMessage: "Use Editor",
120
120
  },
121
- "search": {
122
- id: 'creatives.containers.Templates.search',
123
- defaultMessage: "Search",
124
- },
125
121
  "blankTemplate": {
126
122
  id: 'creatives.containers.Templates.blankTemplate',
127
123
  defaultMessage: "Blank template",
@@ -310,4 +306,28 @@ export default defineMessages({
310
306
  id: 'creatives.containers.Templates.descriptionTemplates',
311
307
  defaultMessage: 'Description of templates',
312
308
  },
309
+ "Sms": {
310
+ id: 'creatives.containers.Templates.Sms',
311
+ defaultMessage: 'Sms',
312
+ },
313
+ "mobilepush": {
314
+ id: 'creatives.containers.Templates.mobilepush',
315
+ defaultMessage: 'mobilepush',
316
+ },
317
+ "Gallery": {
318
+ id: 'creatives.containers.Templates.Gallery',
319
+ defaultMessage: 'Gallery',
320
+ },
321
+ "Email": {
322
+ id: 'creatives.containers.Templates.Email',
323
+ defaultMessage: 'Email',
324
+ },
325
+ "Ebill": {
326
+ id: 'creatives.containers.Templates.Ebill',
327
+ defaultMessage: 'Ebill',
328
+ },
329
+ "Line": {
330
+ id: 'creatives.containers.Templates.Line',
331
+ defaultMessage: 'Line',
332
+ },
313
333
  });
@@ -138,4 +138,28 @@ export default defineMessages({
138
138
  id: 'creatives.containers.Create.Only_followers',
139
139
  defaultMessage: 'Only followers',
140
140
  },
141
+ 'Upload Image': {
142
+ id: 'creatives.containers.Create.Upload_Image',
143
+ defaultMessage: 'Upload Image',
144
+ },
145
+ 'Whether to display the graphic cover on the graphic details page': {
146
+ id: 'creatives.containers.Create.graphic_details_page',
147
+ defaultMessage: 'Whether to display the graphic cover on the graphic details page',
148
+ },
149
+ 'Source link*': {
150
+ id: 'creatives.containers.Create.Source_link',
151
+ defaultMessage: 'Source link*',
152
+ },
153
+ 'to be displayed on the graphic details page': {
154
+ id: 'creatives.containers.Create.to_be_displayed_on_the_graphic_details_page',
155
+ defaultMessage: 'to be displayed on the graphic details page',
156
+ },
157
+ 'Insert Image': {
158
+ id: 'creatives.containers.Create.Insert_Image',
159
+ defaultMessage: 'Insert Image',
160
+ },
161
+ 'Example: http://example.com': {
162
+ id: 'creatives.containers.Create.http_example',
163
+ defaultMessage: 'Example: http://example.com',
164
+ },
141
165
  });
package/i18n.js CHANGED
@@ -4,15 +4,16 @@
4
4
  * This will setup the i18n language files and locale data for your app.
5
5
  *
6
6
  */
7
- import { addLocaleData } from 'react-intl';
8
- import enLocaleData from 'react-intl/locale-data/en';
9
- import zhLocaleData from 'react-intl/locale-data/zh';
7
+ const addLocaleData = require('react-intl').addLocaleData;
8
+ const enLocaleData = require('react-intl/locale-data/en');
9
+ const zhLocaleData = require('react-intl/locale-data/zh');
10
10
 
11
- import { DEFAULT_LOCALE } from './containers/Cap/constants'; // eslint-disable-line
12
- import enTranslationMessages from './translations/en.json';
13
- import zhTranslationMessages from './translations/zh.json';
11
+ const enTranslationMessages = require('./translations/en.json');
12
+ const zhTranslationMessages = require('./translations/zh.json');
14
13
 
15
- export const appLocales = [
14
+ const DEFAULT_LOCALE = 'en';
15
+
16
+ const appLocales = [
16
17
  'en',
17
18
  'zh',
18
19
  ];
@@ -20,7 +21,7 @@ export const appLocales = [
20
21
  addLocaleData(enLocaleData);
21
22
  addLocaleData(zhLocaleData);
22
23
 
23
- export const formatTranslationMessages = (locale, messages) => {
24
+ const formatTranslationMessages = (locale, messages) => {
24
25
  const defaultFormattedMessages = locale !== DEFAULT_LOCALE
25
26
  ? formatTranslationMessages(DEFAULT_LOCALE, enTranslationMessages)
26
27
  : {};
@@ -33,7 +34,13 @@ export const formatTranslationMessages = (locale, messages) => {
33
34
  }, {});
34
35
  };
35
36
 
36
- export const translationMessages = {
37
+ const translationMessages = {
37
38
  en: formatTranslationMessages('en', enTranslationMessages),
38
39
  zh: formatTranslationMessages('zh', zhTranslationMessages),
39
40
  };
41
+
42
+
43
+ exports.appLocales = appLocales;
44
+ exports.formatTranslationMessages = formatTranslationMessages;
45
+ exports.translationMessages = translationMessages;
46
+ exports.DEFAULT_LOCALE = DEFAULT_LOCALE;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@capillarytech/creatives-library",
3
3
  "author": "meharaj",
4
- "version": "3.2.3",
4
+ "version": "3.3.0",
5
5
  "description": "Capillary creatives ui",
6
6
  "main": "./index.js",
7
7
  "module": "./index.es.js",