@capillarytech/creatives-library 6.11.5 → 6.11.7

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 (80) hide show
  1. package/app.js +3 -3
  2. package/assets/rich-video-placeholder.svg +20 -0
  3. package/components/TemplatePreview/_templatePreview.scss +14 -0
  4. package/components/TemplatePreview/index.js +83 -3
  5. package/components/TemplatePreview/messages.js +8 -0
  6. package/config/app.js +2 -2
  7. package/containers/Cap/sagas.js +2 -3
  8. package/index.js +0 -5
  9. package/package.json +4 -4
  10. package/services/getSchema.js +0 -3
  11. package/translations/en.json +14 -15
  12. package/translations/zh.json +14 -15
  13. package/v2Components/BeeEditor/index.js +263 -0
  14. package/v2Components/BeeEditor/index.scss +11 -0
  15. package/v2Components/BeeEditor/messages.js +71 -0
  16. package/v2Components/BeeEditor/tests/index.test.js +10 -0
  17. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +151 -151
  18. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +33 -33
  19. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -10
  20. package/v2Components/TemplatePreview/_templatePreview.scss +14 -0
  21. package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +44 -44
  22. package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -21
  23. package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -16
  24. package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +134 -134
  25. package/v2Components/TemplatePreview/assets/images/mobile.svg +23 -23
  26. package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -22
  27. package/v2Components/TemplatePreview/assets/images/user-icon.svg +18 -18
  28. package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -21
  29. package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +77 -77
  30. package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -20
  31. package/v2Components/TemplatePreview/index.js +81 -2
  32. package/v2Components/TemplatePreview/messages.js +8 -0
  33. package/v2Components/TemplatePreview/tests/index.test.js +10 -10
  34. package/v2Containers/BeeEditor/index.js +1 -1
  35. package/v2Containers/Cap/actions.js +1 -1
  36. package/v2Containers/Cap/constants.js +3 -3
  37. package/v2Containers/Cap/reducer.js +3 -3
  38. package/v2Containers/Cap/sagas.js +8 -8
  39. package/v2Containers/CreativesContainer/SlideBoxContent.js +11 -0
  40. package/v2Containers/CreativesContainer/actions.js +27 -27
  41. package/v2Containers/CreativesContainer/constants.js +17 -17
  42. package/v2Containers/CreativesContainer/index.scss +44 -44
  43. package/v2Containers/CreativesContainer/messages.js +305 -305
  44. package/v2Containers/CreativesContainer/reducer.js +29 -29
  45. package/v2Containers/CreativesContainer/sagas.js +11 -11
  46. package/v2Containers/CreativesContainer/selectors.js +30 -30
  47. package/v2Containers/CreativesContainer/tests/actions.test.js +18 -18
  48. package/v2Containers/CreativesContainer/tests/index.test.js +10 -10
  49. package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -9
  50. package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -15
  51. package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -10
  52. package/v2Containers/LanguageProvider/index.js +1 -1
  53. package/v2Containers/Line/Container/ImageMap/index.js +2 -1
  54. package/v2Containers/Line/Container/Video/constants.js +10 -0
  55. package/v2Containers/Line/Container/Video/index.js +767 -0
  56. package/v2Containers/Line/Container/Video/messages.js +142 -0
  57. package/v2Containers/Line/Container/Video/style.js +61 -0
  58. package/v2Containers/Line/Container/Wrapper/index.js +2 -0
  59. package/v2Containers/Line/Container/Wrapper/messages.js +4 -0
  60. package/v2Containers/Line/Container/Wrapper/utils.js +8 -3
  61. package/v2Containers/Line/Container/constants.js +2 -0
  62. package/v2Containers/Line/Container/index.js +109 -2
  63. package/v2Containers/Line/Container/messages.js +4 -0
  64. package/v2Containers/Templates/index.js +15 -1
  65. package/v2Containers/Templates/messages.js +4 -0
  66. package/v2Containers/Templates/tests/actions.test.js +18 -18
  67. package/v2Containers/Templates/tests/index.test.js +10 -10
  68. package/v2Containers/Templates/tests/reducer.test.js +9 -9
  69. package/v2Containers/Templates/tests/sagas.test.js +15 -15
  70. package/v2Containers/Templates/tests/selectors.test.js +10 -10
  71. package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -29
  72. package/v2Containers/TemplatesV2/actions.js +16 -16
  73. package/v2Containers/TemplatesV2/constants.js +10 -10
  74. package/v2Containers/TemplatesV2/messages.js +61 -61
  75. package/v2Containers/TemplatesV2/selectors.js +25 -25
  76. package/v2Containers/TemplatesV2/tests/actions.test.js +18 -18
  77. package/v2Containers/TemplatesV2/tests/index.test.js +10 -10
  78. package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -9
  79. package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -15
  80. package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -10
@@ -1,20 +1,20 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
2
- <g fill="none" fill-rule="evenodd">
3
- <rect width="220" height="472" fill="#101211" rx="26"/>
4
- <rect width="202" height="404" x="9" y="36" fill="#F4F5F7" rx="9"/>
5
- <rect width="182" height="136" x="19" y="112" fill="#F4F5F7" rx="17.5"/>
6
- <path fill="#F4F5F7" d="M18 36h184c4.97 0 9 4.03 9 9v6H9v-6c0-4.97 4.03-9 9-9z"/>
7
- <path fill="#F4F5F7" d="M9 51H211V82H9z" transform="matrix(1 0 0 -1 0 133)"/>
8
- <rect width="52" height="5" x="84" y="14" fill="#2E2E2E" rx="2.5"/>
9
- <rect width="52" height="5" x="84" y="455" fill="#2E2E2E" rx="2.5"/>
10
- <circle cx="45.5" cy="19.5" r="5.5" fill="#2E2E2E"/>
11
- <circle cx="65.5" cy="19.5" r="3.5" fill="#2E2E2E"/>
12
- <text fill="#000" font-family="Roboto-Regular, Roboto" font-size="12" letter-spacing=".175">
13
- <tspan x="49.5" y="71">Muji India</tspan>
14
- </text>
15
- <circle cx="199" cy="63" r="1" fill="#000"/>
16
- <circle cx="199" cy="70" r="1" fill="#000"/>
17
- <circle cx="199" cy="66.5" r="1" fill="#000"/>
18
- <path fill="#000" d="M28 66c0 .279-.226.505-.505.505h-5.556l2.42 2.42c.198.197.198.518 0 .716-.198.198-.52.198-.718 0l-2.934-2.934c-.39-.39-.39-1.024 0-1.414l2.934-2.934c.198-.198.52-.198.718 0 .198.198.198.519 0 .717l-2.42 2.419h5.556c.279 0 .505.226.505.505z"/>
19
- </g>
20
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="220" height="472" viewBox="0 0 220 472">
2
+ <g fill="none" fill-rule="evenodd">
3
+ <rect width="220" height="472" fill="#101211" rx="26"/>
4
+ <rect width="202" height="404" x="9" y="36" fill="#F4F5F7" rx="9"/>
5
+ <rect width="182" height="136" x="19" y="112" fill="#F4F5F7" rx="17.5"/>
6
+ <path fill="#F4F5F7" d="M18 36h184c4.97 0 9 4.03 9 9v6H9v-6c0-4.97 4.03-9 9-9z"/>
7
+ <path fill="#F4F5F7" d="M9 51H211V82H9z" transform="matrix(1 0 0 -1 0 133)"/>
8
+ <rect width="52" height="5" x="84" y="14" fill="#2E2E2E" rx="2.5"/>
9
+ <rect width="52" height="5" x="84" y="455" fill="#2E2E2E" rx="2.5"/>
10
+ <circle cx="45.5" cy="19.5" r="5.5" fill="#2E2E2E"/>
11
+ <circle cx="65.5" cy="19.5" r="3.5" fill="#2E2E2E"/>
12
+ <text fill="#000" font-family="Roboto-Regular, Roboto" font-size="12" letter-spacing=".175">
13
+ <tspan x="49.5" y="71">Muji India</tspan>
14
+ </text>
15
+ <circle cx="199" cy="63" r="1" fill="#000"/>
16
+ <circle cx="199" cy="70" r="1" fill="#000"/>
17
+ <circle cx="199" cy="66.5" r="1" fill="#000"/>
18
+ <path fill="#000" d="M28 66c0 .279-.226.505-.505.505h-5.556l2.42 2.42c.198.197.198.518 0 .716-.198.198-.52.198-.718 0l-2.934-2.934c-.39-.39-.39-1.024 0-1.414l2.934-2.934c.198-.198.52-.198.718 0 .198.198.198.519 0 .717l-2.42 2.419h5.556c.279 0 .505.226.505.505z"/>
19
+ </g>
20
+ </svg>
@@ -21,10 +21,11 @@ const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
21
21
  const lineMobileAndroid = require('../../assets/line.png');
22
22
  const lineImgPlaceholder = require('../../assets/line-image-placeholder.svg');
23
23
  const lineStickerPlaceholder = require('../../assets/smiley-placeholder.svg');
24
+ const lineVideoPlaceholder = require('../../assets/rich-video-placeholder.svg');
24
25
  const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
25
26
  const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
26
- import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08 } from '@capillarytech/cap-ui-library/styled/variables';
27
- import { TEMPLATE, IMAGE_CAROUSEL, IMAGE, STICKER, TEXT, IMAGE_MAP } from '../../v2Containers/Line/Container/constants';
27
+ import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08, CAP_G06 } from '@capillarytech/cap-ui-library/styled/variables';
28
+ import { TEMPLATE, IMAGE_CAROUSEL, IMAGE, STICKER, TEXT, IMAGE_MAP, VIDEO } from '../../v2Containers/Line/Container/constants';
28
29
 
29
30
  class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
30
31
  onPreviewContentClicked = (channel) => {
@@ -175,6 +176,76 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
175
176
  });
176
177
  }
177
178
 
179
+ const getVideoContent = ({
180
+ video,
181
+ actionUrl,
182
+ sectionStyle,
183
+ }) => (
184
+ <div
185
+ className="message-pop align-left"
186
+ style={{
187
+ ...sectionStyle,
188
+ minHeight: 184,
189
+ display: 'flex',
190
+ justifyContent: 'center',
191
+ alignItems: 'center',
192
+ backgroundColor: !video ? 'transparent' : CAP_G06,
193
+ marginTop: 0,
194
+ }}
195
+ key={video}
196
+ >
197
+ {
198
+ video
199
+ ? (
200
+ <>
201
+ <video width="126" style={{ opacity: 0.5 }}>
202
+ <source src={video} type="video/mp4" />
203
+ </video>
204
+ <div
205
+ style={{
206
+ position: 'absolute',
207
+ display: 'flex',
208
+ flexDirection: 'column',
209
+ }}
210
+ >
211
+ <CapButton
212
+ className="preview-video-btn"
213
+ type="flat"
214
+ >
215
+ <CapIcon type="play"/>
216
+ <FormattedMessage {...messages.playVideo} />
217
+ </CapButton>
218
+ {
219
+ actionUrl
220
+ ? (
221
+ <CapButton
222
+ className="preview-video-btn"
223
+ type="flat"
224
+ >
225
+ <CapIcon type="reply" style={{ fontSize: 18 }}/>
226
+ <FormattedMessage {...messages.showDetails} />
227
+ </CapButton>
228
+ )
229
+ : null
230
+ }
231
+ </div>
232
+ </>
233
+ )
234
+ : (
235
+ <CapImage
236
+ src={lineVideoPlaceholder}
237
+ alt="brand-name"
238
+ rest={{
239
+ style: {
240
+ width: 126,
241
+ marginBottom: 5,
242
+ },
243
+ }}
244
+ />
245
+ )
246
+ }
247
+ </div>
248
+ );
178
249
 
179
250
  return (
180
251
  <CapRow>
@@ -346,6 +417,8 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
346
417
  stickerUrl: lineStickerPlaceholder,
347
418
  },
348
419
  imageCarousel = [lineImgPlaceholder],
420
+ video,
421
+ actionUrl,
349
422
  } = item || {};
350
423
  const sectionStyle = {
351
424
  background: CAP_WHITE,
@@ -393,7 +466,13 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
393
466
  </div>
394
467
  );
395
468
  }
469
+ if (type === VIDEO) {
470
+ return getVideoContent({ video, actionUrl, sectionStyle });
471
+ }
396
472
  if ((type === IMAGE_MAP && baseUrl)) {
473
+ if (video) {
474
+ return getVideoContent({ video, actionUrl, sectionStyle });
475
+ }
397
476
  return (
398
477
  <div
399
478
  className="message-pop align-left"
@@ -66,4 +66,12 @@ export default defineMessages({
66
66
  id: 'creatives.componentsV2.TemplatePreview.textMessageCharacter',
67
67
  defaultMessage: 'characters',
68
68
  },
69
+ playVideo: {
70
+ id: 'creatives.componentsV2.TemplatePreview.playVideo',
71
+ defaultMessage: 'Play',
72
+ },
73
+ showDetails: {
74
+ id: 'creatives.componentsV2.TemplatePreview.showDetails',
75
+ defaultMessage: 'Show details',
76
+ },
69
77
  });
@@ -1,10 +1,10 @@
1
- // import React from 'react';
2
- // import { shallow } from 'enzyme';
3
-
4
- // import TemplatePreview from '../index';
5
-
6
- describe('<TemplatePreview />', () => {
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 TemplatePreview from '../index';
5
+
6
+ describe('<TemplatePreview />', () => {
7
+ it('Expect to have unit tests specified', () => {
8
+ expect(true).toEqual(false);
9
+ });
10
+ });
@@ -256,7 +256,7 @@ function BeeEditor(props) {
256
256
  </>;
257
257
  return (
258
258
  <CapSpin spinning={saveRowRequest || false}>
259
- <div id="bee-plugin-container" style={{ height: '500px'}}>
259
+ <div id="bee-plugin-container" style={{ height: '650px'}}>
260
260
  </div>
261
261
  <TagList
262
262
  moduleFilterEnabled={moduleFilterEnabled}
@@ -12,7 +12,7 @@ export function authenticate(user) {
12
12
 
13
13
  export function logout() {
14
14
  return {
15
- type: types.LOGOUT_REQUEST,
15
+ type: types.LOGOUT_REQUEST_V2,
16
16
  };
17
17
  }
18
18
 
@@ -6,9 +6,9 @@ export const LOGIN_REQUEST = 'cap/LOGIN_REQUEST';
6
6
  export const LOGIN_SUCCESS = 'cap/LOGIN_SUCCESS';
7
7
  export const LOGIN_FAILURE = 'cap/LOGIN_FAILURE';
8
8
 
9
- export const LOGOUT_REQUEST = 'cap/LOGOUT_REQUEST';
10
- export const LOGOUT_SUCCESS = 'cap/LOGOUT_SUCCESS';
11
- export const LOGOUT_FAILURE = 'cap/LOGOUT_FAILURE';
9
+ export const LOGOUT_REQUEST_V2 = 'cap/LOGOUT_REQUEST_V2';
10
+ export const LOGOUT_SUCCESS_V2 = 'cap/LOGOUT_SUCCESS_V2';
11
+ export const LOGOUT_FAILURE_V2 = 'cap/LOGOUT_FAILURE_V2';
12
12
  export const ADD_MESSAGE = 'cap/ADD_MESSAGE';
13
13
  export const REMOVE_MESSAGE = 'cap/REMOVE_MESSAGE';
14
14
  export const GET_USER_DATA_REQUEST = 'cap/GET_USER_DATA_REQUEST';
@@ -22,11 +22,11 @@ function capReducer(state = fromJS(initialState.cap), action) {
22
22
  return state
23
23
  .set('login_progress', false)
24
24
  .set('message', action.error.message);
25
- case types.LOGOUT_REQUEST:
25
+ case types.LOGOUT_REQUEST_V2:
26
26
  return state.set('login_progress', false);
27
- case types.LOGOUT_SUCCESS:
27
+ case types.LOGOUT_SUCCESS_V2:
28
28
  return state;
29
- case types.LOGOUT_FAILURE:
29
+ case types.LOGOUT_FAILURE_V2:
30
30
  return state;
31
31
  case types.SWITCH_ORG_REQUEST:
32
32
  return state
@@ -5,7 +5,7 @@ import * as Api from '../../services/api';
5
5
  import * as LocalStorage from '../../services/localStorageApi';
6
6
  import * as types from './constants';
7
7
  import config from '../../config/app';
8
- import pathConfig from '../../config/path';
8
+ //import pathConfig from '../../config/path';
9
9
  import { getTopbarMenuDataValue } from '../../v2Containers/App/constants';
10
10
  // import {makeSelectOrgId} from './selectors';
11
11
 
@@ -42,8 +42,8 @@ function* loginFlow() {
42
42
  while (condition) {
43
43
  const { user } = yield take(types.LOGIN_REQUEST);
44
44
  const task = yield fork(authorize, user);
45
- const action = yield take([types.LOGOUT_REQUEST, types.LOGIN_FAILURE]);
46
- if (action.type === types.LOGOUT_REQUEST) {
45
+ const action = yield take([types.LOGOUT_REQUEST_V2, types.LOGIN_FAILURE]);
46
+ if (action.type === types.LOGOUT_REQUEST_V2) {
47
47
  yield cancel(task);
48
48
  }
49
49
  // yield call(LocalStorage.clearItem, 'token');
@@ -57,16 +57,16 @@ function* logoutFlow() {
57
57
  const serverLogout = yield call(Api.logout);
58
58
  if (serverLogout.success && serverLogout.success === true) {
59
59
  const loginUrl = (process.env.NODE_ENV === 'production') ?
60
- `${pathConfig.publicPath}${config.production.login_url}` : `${pathConfig.publicPath}${config.development.login_url}`;
61
- yield [put({type: types.LOGOUT_SUCCESS})];
60
+ `${config.production.login_url}` : `${config.development.login_url}`;
61
+ yield [put({type: types.LOGOUT_SUCCESS_V2})];
62
62
  yield call(LocalStorage.clearItem, 'token');
63
63
  yield call(LocalStorage.clearItem, 'orgID');
64
64
  yield call(LocalStorage.clearItem, 'user');
65
65
  yield call(LocalStorage.clearItem, 'isLoggedIn');
66
- window.location.href = loginUrl;
66
+ window.location.href = `${window.location.origin}${loginUrl}`;
67
67
  }
68
68
  } catch (error) {
69
- yield put({ type: types.LOGOUT_FAILURE, error });
69
+ yield put({ type: types.LOGOUT_FAILURE_V2, error });
70
70
  }
71
71
  }
72
72
 
@@ -141,7 +141,7 @@ function* watchForOrgChange() {
141
141
  }
142
142
 
143
143
  function* watchForLogoutFlow() {
144
- yield takeLatest(types.LOGOUT_REQUEST, logoutFlow);
144
+ yield takeLatest(types.LOGOUT_REQUEST_V2, logoutFlow);
145
145
  }
146
146
 
147
147
  function* watchForFetchUserInfo() {
@@ -176,6 +176,12 @@ function SlideBoxContent(props) {
176
176
  stickerId,
177
177
  packageId,
178
178
  baseUrl,
179
+ video: {
180
+ originalContentUrl,
181
+ externalLink: {
182
+ linkUri,
183
+ } = {},
184
+ } = {},
179
185
  template,
180
186
  }) => {
181
187
  let previewContent = {};
@@ -188,6 +194,8 @@ function SlideBoxContent(props) {
188
194
  packageId,
189
195
  };
190
196
  previewContent.baseUrl = baseUrl;
197
+ previewContent.video = originalContentUrl;
198
+ previewContent.actionUrl = linkUri;
191
199
  previewContent.imageCarousel = get(template, 'columns', [{}]).map(({ imageUrl, action: { label: actionLabel } = {} }) => ({ imageUrl, actionLabel }) );
192
200
 
193
201
  const getType = () => {
@@ -206,6 +214,9 @@ function SlideBoxContent(props) {
206
214
  if (template) {
207
215
  return 'image_carousel';
208
216
  }
217
+ if (video) {
218
+ return 'video';
219
+ }
209
220
  };
210
221
  previewContent.type = getType();
211
222
  return previewContent;
@@ -1,27 +1,27 @@
1
- /*
2
- *
3
- * CreativesContainer actions
4
- *
5
- */
6
-
7
- import {
8
- DEFAULT_ACTION,
9
- HIDE_CONTAINER_LOADER,
10
- SHOW_CONTANER_LOADER,
11
- } from './constants';
12
-
13
- export function defaultAction() {
14
- return {
15
- type: DEFAULT_ACTION,
16
- };
17
- }
18
- export function showCreativesContainerLoader() {
19
- return {
20
- type: SHOW_CONTANER_LOADER,
21
- };
22
- }
23
- export function hideCreativesContanerLoader() {
24
- return {
25
- type: HIDE_CONTAINER_LOADER,
26
- };
27
- }
1
+ /*
2
+ *
3
+ * CreativesContainer actions
4
+ *
5
+ */
6
+
7
+ import {
8
+ DEFAULT_ACTION,
9
+ HIDE_CONTAINER_LOADER,
10
+ SHOW_CONTANER_LOADER,
11
+ } from './constants';
12
+
13
+ export function defaultAction() {
14
+ return {
15
+ type: DEFAULT_ACTION,
16
+ };
17
+ }
18
+ export function showCreativesContainerLoader() {
19
+ return {
20
+ type: SHOW_CONTANER_LOADER,
21
+ };
22
+ }
23
+ export function hideCreativesContanerLoader() {
24
+ return {
25
+ type: HIDE_CONTAINER_LOADER,
26
+ };
27
+ }
@@ -1,17 +1,17 @@
1
- /*
2
- *
3
- * CreativesContainer constants
4
- *
5
- */
6
-
7
- export const DEFAULT_ACTION = 'app/CreativesContainer/DEFAULT_ACTION';
8
- export const EMAIL = "EMAIL";
9
- export const SMS = "SMS";
10
- export const EBILL = "EBILL";
11
- export const LINE = "LINE";
12
- export const CALL_TASK = "CALL_TASK";
13
- export const MOBILE_PUSH = "MOBILEPUSH";
14
- export const WECHAT = "WECHAT";
15
- export const FACEBOOK = "FACEBOOK";
16
- export const SHOW_CONTANER_LOADER = "app/CreativesContainer/SHOW_CONTANER_LOADER";
17
- export const HIDE_CONTAINER_LOADER = "app/CreativesContainer/HIDE_CONTAINER_LOADER";
1
+ /*
2
+ *
3
+ * CreativesContainer constants
4
+ *
5
+ */
6
+
7
+ export const DEFAULT_ACTION = 'app/CreativesContainer/DEFAULT_ACTION';
8
+ export const EMAIL = "EMAIL";
9
+ export const SMS = "SMS";
10
+ export const EBILL = "EBILL";
11
+ export const LINE = "LINE";
12
+ export const CALL_TASK = "CALL_TASK";
13
+ export const MOBILE_PUSH = "MOBILEPUSH";
14
+ export const WECHAT = "WECHAT";
15
+ export const FACEBOOK = "FACEBOOK";
16
+ export const SHOW_CONTANER_LOADER = "app/CreativesContainer/SHOW_CONTANER_LOADER";
17
+ export const HIDE_CONTAINER_LOADER = "app/CreativesContainer/HIDE_CONTAINER_LOADER";
@@ -1,45 +1,45 @@
1
- @import '~@capillarytech/cap-ui-library/styles/_variables.scss';
2
-
3
- $classPrefix: add-creatives-section;
4
-
5
- .#{$classPrefix} {
6
- &.creatives-library-mode{
7
- .sms-create-container, .sms-email-container{
8
- .ant-tabs-top-bar{
9
- display: none;
10
- }
11
- }
12
- }
13
- .#{$classPrefix}-footer {
14
- position: absolute;
15
- bottom: 0;
16
- left: 1px;
17
- padding: 0 12px;
18
- display: flex;
19
- align-items: center;
20
- height: 48px;
21
- border-top: 1px solid $CAP_G07;
22
-
23
- &.with-creative {
24
- width: 100%;
25
- }
26
- }
27
- .wechat-steps {
28
- width: 40% !important;
29
- left: 20%;
30
- position: relative;
31
- .ant-steps-item-title::after {
32
- top: 8px;
33
- }
34
- .ant-steps-item-content {
35
- vertical-align: middle;
36
- padding-top: 4px;
37
- }
38
- }
39
- }
40
-
41
- .map-template-create {
42
- .slidebox-header div:first-child {
43
- width: 100%;
44
- }
1
+ @import '~@capillarytech/cap-ui-library/styles/_variables.scss';
2
+
3
+ $classPrefix: add-creatives-section;
4
+
5
+ .#{$classPrefix} {
6
+ &.creatives-library-mode{
7
+ .sms-create-container, .sms-email-container{
8
+ .ant-tabs-top-bar{
9
+ display: none;
10
+ }
11
+ }
12
+ }
13
+ .#{$classPrefix}-footer {
14
+ position: absolute;
15
+ bottom: 0;
16
+ left: 1px;
17
+ padding: 0 12px;
18
+ display: flex;
19
+ align-items: center;
20
+ height: 48px;
21
+ border-top: 1px solid $CAP_G07;
22
+
23
+ &.with-creative {
24
+ width: 100%;
25
+ }
26
+ }
27
+ .wechat-steps {
28
+ width: 40% !important;
29
+ left: 20%;
30
+ position: relative;
31
+ .ant-steps-item-title::after {
32
+ top: 8px;
33
+ }
34
+ .ant-steps-item-content {
35
+ vertical-align: middle;
36
+ padding-top: 4px;
37
+ }
38
+ }
39
+ }
40
+
41
+ .map-template-create {
42
+ .slidebox-header div:first-child {
43
+ width: 100%;
44
+ }
45
45
  }