@capillarytech/creatives-library 6.7.0 → 6.8.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 (85) hide show
  1. package/assets/line-image-placeholder.svg +14 -0
  2. package/assets/line.png +0 -0
  3. package/assets/smiley-placeholder.svg +11 -0
  4. package/components/TemplatePreview/index.js +185 -8
  5. package/index.js +3 -3
  6. package/package.json +1 -1
  7. package/routes.js +2 -2
  8. package/services/api.js +4 -1
  9. package/styles/vendor/semantic/src/definitions/modules/accordion.less +219 -219
  10. package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/index.js +1 -1
  11. package/v2Components/TemplatePreview/assets/images/WECHAT_5x.png +0 -0
  12. package/v2Components/TemplatePreview/index.js +164 -12
  13. package/v2Components/TemplatePreview/messages.js +8 -0
  14. package/v2Containers/CreativesContainer/SlideBoxContent.js +51 -17
  15. package/v2Containers/CreativesContainer/index.js +23 -17
  16. package/v2Containers/Line/Container/Drawer/index.js +93 -0
  17. package/v2Containers/Line/Container/Image/constants.js +3 -0
  18. package/v2Containers/Line/Container/Image/index.js +460 -0
  19. package/v2Containers/Line/Container/Image/messages.js +86 -0
  20. package/v2Containers/Line/Container/Image/style.js +32 -0
  21. package/v2Containers/Line/Container/ImageMap/assets/hover/custom.png +0 -0
  22. package/v2Containers/Line/Container/ImageMap/assets/hover/templateEight.png +0 -0
  23. package/v2Containers/Line/Container/ImageMap/assets/hover/templateFive.png +0 -0
  24. package/v2Containers/Line/Container/ImageMap/assets/hover/templateFour.png +0 -0
  25. package/v2Containers/Line/Container/ImageMap/assets/hover/templateOne.png +0 -0
  26. package/v2Containers/Line/Container/ImageMap/assets/hover/templateSeven.png +0 -0
  27. package/v2Containers/Line/Container/ImageMap/assets/hover/templateSix.png +0 -0
  28. package/v2Containers/Line/Container/ImageMap/assets/hover/templateThree.png +0 -0
  29. package/v2Containers/Line/Container/ImageMap/assets/hover/templateTwo.png +0 -0
  30. package/v2Containers/Line/Container/ImageMap/assets/selected/custom.png +0 -0
  31. package/v2Containers/Line/Container/ImageMap/assets/selected/templateEight.png +0 -0
  32. package/v2Containers/Line/Container/ImageMap/assets/selected/templateFive.png +0 -0
  33. package/v2Containers/Line/Container/ImageMap/assets/selected/templateFour.png +0 -0
  34. package/v2Containers/Line/Container/ImageMap/assets/selected/templateOne.png +0 -0
  35. package/v2Containers/Line/Container/ImageMap/assets/selected/templateSeven.png +0 -0
  36. package/v2Containers/Line/Container/ImageMap/assets/selected/templateSix.png +0 -0
  37. package/v2Containers/Line/Container/ImageMap/assets/selected/templateThree.png +0 -0
  38. package/v2Containers/Line/Container/ImageMap/assets/selected/templateTwo.png +0 -0
  39. package/v2Containers/Line/Container/ImageMap/assets/templates/custom.png +0 -0
  40. package/v2Containers/Line/Container/ImageMap/assets/templates/templateEight.png +0 -0
  41. package/v2Containers/Line/Container/ImageMap/assets/templates/templateFive.png +0 -0
  42. package/v2Containers/Line/Container/ImageMap/assets/templates/templateFour.png +0 -0
  43. package/v2Containers/Line/Container/ImageMap/assets/templates/templateOne.png +0 -0
  44. package/v2Containers/Line/Container/ImageMap/assets/templates/templateSeven.png +0 -0
  45. package/v2Containers/Line/Container/ImageMap/assets/templates/templateSix.png +0 -0
  46. package/v2Containers/Line/Container/ImageMap/assets/templates/templateThree.png +0 -0
  47. package/v2Containers/Line/Container/ImageMap/assets/templates/templateTwo.png +0 -0
  48. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/custom.png +0 -0
  49. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateEight.png +0 -0
  50. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateFive.png +0 -0
  51. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateFour.png +0 -0
  52. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateOne.png +0 -0
  53. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateSeven.png +0 -0
  54. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateSix.png +0 -0
  55. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateThree.png +0 -0
  56. package/v2Containers/Line/Container/ImageMap/assets/templates_with_alphabets/templateTwo.png +0 -0
  57. package/v2Containers/Line/Container/ImageMap/constants.js +19 -0
  58. package/v2Containers/Line/Container/ImageMap/index.js +603 -0
  59. package/v2Containers/Line/Container/ImageMap/messages.js +126 -0
  60. package/v2Containers/Line/Container/ImageMap/style.js +94 -0
  61. package/v2Containers/Line/Container/ImageMap/templates.json +195 -0
  62. package/v2Containers/Line/Container/Sticker/index.js +224 -0
  63. package/v2Containers/Line/Container/Sticker/messages.js +34 -0
  64. package/v2Containers/Line/Container/Sticker/style.js +36 -0
  65. package/v2Containers/Line/Container/Sticker/utils.js +68 -0
  66. package/v2Containers/Line/Container/Text/index.js +338 -0
  67. package/v2Containers/Line/Container/Text/messages.js +74 -0
  68. package/v2Containers/Line/Container/Text/style.js +37 -0
  69. package/v2Containers/Line/Container/Wrapper/index.js +152 -0
  70. package/v2Containers/Line/Container/Wrapper/messages.js +46 -0
  71. package/v2Containers/Line/Container/Wrapper/style.js +44 -0
  72. package/v2Containers/Line/Container/Wrapper/utils.js +67 -0
  73. package/v2Containers/Line/Container/_lineCreate.scss +108 -0
  74. package/v2Containers/Line/Container/actions.js +99 -0
  75. package/v2Containers/Line/Container/constants.js +48 -0
  76. package/v2Containers/Line/Container/index.js +581 -0
  77. package/v2Containers/Line/Container/messages.js +66 -0
  78. package/v2Containers/Line/Container/reducer.js +103 -0
  79. package/v2Containers/Line/Container/sagas.js +137 -0
  80. package/v2Containers/Line/Container/selectors.js +30 -0
  81. package/v2Containers/Line/Container/style.js +57 -0
  82. package/v2Containers/Line/Create/index.js +1 -1
  83. package/v2Containers/Templates/index.js +40 -22
  84. package/v2Containers/Templates/messages.js +8 -0
  85. package/v2Containers/TemplatesV2/index.js +13 -0
@@ -1,219 +1,219 @@
1
- /*!
2
- * # Semantic UI - Accordion
3
- * http://github.com/semantic-org/semantic-ui/
4
- *
5
- *
6
- * Released under the MIT license
7
- * http://opensource.org/licenses/MIT
8
- *
9
- */
10
-
11
- /*******************************
12
- Theme
13
- *******************************/
14
-
15
- @type : 'module';
16
- @element : 'accordion';
17
-
18
- @import (multiple) '../../theme.config';
19
-
20
- /*******************************
21
- Accordion
22
- *******************************/
23
-
24
- .ui.accordion,
25
- .ui.accordion .accordion {
26
- max-width: 100%;
27
- }
28
- .ui.accordion .accordion {
29
- margin: @childAccordionMargin;
30
- padding: @childAccordionPadding;
31
- }
32
-
33
- /* Title */
34
- .ui.accordion .title,
35
- .ui.accordion .accordion .title {
36
- cursor: pointer;
37
- }
38
-
39
- /* Default Styling */
40
- .ui.accordion .title:not(.ui) {
41
- padding: @titlePadding;
42
- font-family: @titleFont;
43
- font-size: @titleFontSize;
44
- color: @titleColor;
45
- }
46
-
47
- /* Content */
48
- .ui.accordion .title ~ .content,
49
- .ui.accordion .accordion .title ~ .content {
50
- display: none;
51
- }
52
-
53
- /* Default Styling */
54
- .ui.accordion:not(.styled) .title ~ .content:not(.ui),
55
- .ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
56
- margin: @contentMargin;
57
- padding: @contentPadding;
58
- }
59
- .ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
60
- padding-bottom: 0em;
61
- }
62
-
63
- /* Arrow */
64
- .ui.accordion .title .dropdown.icon,
65
- .ui.accordion .accordion .title .dropdown.icon {
66
- display: @iconDisplay;
67
- float: @iconFloat;
68
- opacity: @iconOpacity;
69
- width: @iconWidth;
70
- height: @iconHeight;
71
- margin: @iconMargin;
72
- padding: @iconPadding;
73
- font-size: @iconFontSize;
74
- transition: @iconTransition;
75
- vertical-align: @iconVerticalAlign;
76
- transform: @iconTransform;
77
- }
78
-
79
- /*--------------
80
- Coupling
81
- ---------------*/
82
-
83
- /* Menu */
84
- .ui.accordion.menu .item .title {
85
- display: block;
86
- padding: @menuTitlePadding;
87
- }
88
- .ui.accordion.menu .item .title > .dropdown.icon {
89
- float: @menuIconFloat;
90
- margin: @menuIconMargin;
91
- transform: @menuIconTransform;
92
- }
93
-
94
- /* Header */
95
- .ui.accordion .ui.header .dropdown.icon {
96
- font-size: @iconFontSize;
97
- margin: @iconMargin;
98
- }
99
-
100
- /*******************************
101
- States
102
- *******************************/
103
-
104
- .ui.accordion .active.title .dropdown.icon,
105
- .ui.accordion .accordion .active.title .dropdown.icon {
106
- transform: @activeIconTransform;
107
- }
108
-
109
- .ui.accordion.menu .item .active.title > .dropdown.icon {
110
- transform: @activeIconTransform;
111
- }
112
-
113
- /*******************************
114
- Types
115
- *******************************/
116
-
117
- /*--------------
118
- Styled
119
- ---------------*/
120
-
121
- .ui.styled.accordion {
122
- width: @styledWidth;
123
- }
124
-
125
- .ui.styled.accordion,
126
- .ui.styled.accordion .accordion {
127
- border-radius: @styledBorderRadius;
128
- background: @styledBackground;
129
- box-shadow: @styledBoxShadow;
130
- }
131
- .ui.styled.accordion .title,
132
- .ui.styled.accordion .accordion .title {
133
- margin: @styledTitleMargin;
134
- padding: @styledTitlePadding;
135
- color: @styledTitleColor;
136
- font-weight: @styledTitleFontWeight;
137
- border-top: @styledTitleBorder;
138
- transition: @styledTitleTransition;
139
- }
140
- .ui.styled.accordion > .title:first-child,
141
- .ui.styled.accordion .accordion .title:first-child {
142
- border-top: none;
143
- }
144
-
145
-
146
- /* Content */
147
- .ui.styled.accordion .content,
148
- .ui.styled.accordion .accordion .content {
149
- margin: @styledContentMargin;
150
- padding: @styledContentPadding;
151
- }
152
- .ui.styled.accordion .accordion .content {
153
- padding: @styledChildContentMargin;
154
- padding: @styledChildContentPadding;
155
- }
156
-
157
-
158
- /* Hover */
159
- .ui.styled.accordion .title:hover,
160
- .ui.styled.accordion .active.title,
161
- .ui.styled.accordion .accordion .title:hover,
162
- .ui.styled.accordion .accordion .active.title {
163
- background: @styledTitleHoverBackground;
164
- color: @styledTitleHoverColor;
165
- }
166
- .ui.styled.accordion .accordion .title:hover,
167
- .ui.styled.accordion .accordion .active.title {
168
- background: @styledHoverChildTitleBackground;
169
- color: @styledHoverChildTitleColor;
170
- }
171
-
172
-
173
- /* Active */
174
- .ui.styled.accordion .active.title {
175
- background: @styledActiveTitleBackground;
176
- color: @styledActiveTitleColor;
177
- }
178
- .ui.styled.accordion .accordion .active.title {
179
- background: @styledActiveChildTitleBackground;
180
- color: @styledActiveChildTitleColor;
181
- }
182
-
183
-
184
- /*******************************
185
- States
186
- *******************************/
187
-
188
- /*--------------
189
- Active
190
- ---------------*/
191
-
192
- .ui.accordion .active.content,
193
- .ui.accordion .accordion .active.content {
194
- display: block;
195
- }
196
-
197
- /*******************************
198
- Variations
199
- *******************************/
200
-
201
- /*--------------
202
- Fluid
203
- ---------------*/
204
-
205
- .ui.fluid.accordion,
206
- .ui.fluid.accordion .accordion {
207
- width: 100%;
208
- }
209
-
210
- /*--------------
211
- Inverted
212
- ---------------*/
213
-
214
- .ui.inverted.accordion .title:not(.ui) {
215
- color: @invertedTitleColor;
216
- }
217
-
218
- .loadUIOverrides();
219
-
1
+ /*!
2
+ * # Semantic UI - Accordion
3
+ * http://github.com/semantic-org/semantic-ui/
4
+ *
5
+ *
6
+ * Released under the MIT license
7
+ * http://opensource.org/licenses/MIT
8
+ *
9
+ */
10
+
11
+ /*******************************
12
+ Theme
13
+ *******************************/
14
+
15
+ @type : 'module';
16
+ @element : 'accordion';
17
+
18
+ @import (multiple) '../../theme.config';
19
+
20
+ /*******************************
21
+ Accordion
22
+ *******************************/
23
+
24
+ .ui.accordion,
25
+ .ui.accordion .accordion {
26
+ max-width: 100%;
27
+ }
28
+ .ui.accordion .accordion {
29
+ margin: @childAccordionMargin;
30
+ padding: @childAccordionPadding;
31
+ }
32
+
33
+ /* Title */
34
+ .ui.accordion .title,
35
+ .ui.accordion .accordion .title {
36
+ cursor: pointer;
37
+ }
38
+
39
+ /* Default Styling */
40
+ .ui.accordion .title:not(.ui) {
41
+ padding: @titlePadding;
42
+ font-family: @titleFont;
43
+ font-size: @titleFontSize;
44
+ color: @titleColor;
45
+ }
46
+
47
+ /* Content */
48
+ .ui.accordion .title ~ .content,
49
+ .ui.accordion .accordion .title ~ .content {
50
+ display: none;
51
+ }
52
+
53
+ /* Default Styling */
54
+ .ui.accordion:not(.styled) .title ~ .content:not(.ui),
55
+ .ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
56
+ margin: @contentMargin;
57
+ padding: @contentPadding;
58
+ }
59
+ .ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
60
+ padding-bottom: 0em;
61
+ }
62
+
63
+ /* Arrow */
64
+ .ui.accordion .title .dropdown.icon,
65
+ .ui.accordion .accordion .title .dropdown.icon {
66
+ display: @iconDisplay;
67
+ float: @iconFloat;
68
+ opacity: @iconOpacity;
69
+ width: @iconWidth;
70
+ height: @iconHeight;
71
+ margin: @iconMargin;
72
+ padding: @iconPadding;
73
+ font-size: @iconFontSize;
74
+ transition: @iconTransition;
75
+ vertical-align: @iconVerticalAlign;
76
+ transform: @iconTransform;
77
+ }
78
+
79
+ /*--------------
80
+ Coupling
81
+ ---------------*/
82
+
83
+ /* Menu */
84
+ .ui.accordion.menu .item .title {
85
+ display: block;
86
+ padding: @menuTitlePadding;
87
+ }
88
+ .ui.accordion.menu .item .title > .dropdown.icon {
89
+ float: @menuIconFloat;
90
+ margin: @menuIconMargin;
91
+ transform: @menuIconTransform;
92
+ }
93
+
94
+ /* Header */
95
+ .ui.accordion .ui.header .dropdown.icon {
96
+ font-size: @iconFontSize;
97
+ margin: @iconMargin;
98
+ }
99
+
100
+ /*******************************
101
+ States
102
+ *******************************/
103
+
104
+ .ui.accordion .active.title .dropdown.icon,
105
+ .ui.accordion .accordion .active.title .dropdown.icon {
106
+ transform: @activeIconTransform;
107
+ }
108
+
109
+ .ui.accordion.menu .item .active.title > .dropdown.icon {
110
+ transform: @activeIconTransform;
111
+ }
112
+
113
+ /*******************************
114
+ Types
115
+ *******************************/
116
+
117
+ /*--------------
118
+ Styled
119
+ ---------------*/
120
+
121
+ .ui.styled.accordion {
122
+ width: @styledWidth;
123
+ }
124
+
125
+ .ui.styled.accordion,
126
+ .ui.styled.accordion .accordion {
127
+ border-radius: @styledBorderRadius;
128
+ background: @styledBackground;
129
+ box-shadow: @styledBoxShadow;
130
+ }
131
+ .ui.styled.accordion .title,
132
+ .ui.styled.accordion .accordion .title {
133
+ margin: @styledTitleMargin;
134
+ padding: @styledTitlePadding;
135
+ color: @styledTitleColor;
136
+ font-weight: @styledTitleFontWeight;
137
+ border-top: @styledTitleBorder;
138
+ transition: @styledTitleTransition;
139
+ }
140
+ .ui.styled.accordion > .title:first-child,
141
+ .ui.styled.accordion .accordion .title:first-child {
142
+ border-top: none;
143
+ }
144
+
145
+
146
+ /* Content */
147
+ .ui.styled.accordion .content,
148
+ .ui.styled.accordion .accordion .content {
149
+ margin: @styledContentMargin;
150
+ padding: @styledContentPadding;
151
+ }
152
+ .ui.styled.accordion .accordion .content {
153
+ padding: @styledChildContentMargin;
154
+ padding: @styledChildContentPadding;
155
+ }
156
+
157
+
158
+ /* Hover */
159
+ .ui.styled.accordion .title:hover,
160
+ .ui.styled.accordion .active.title,
161
+ .ui.styled.accordion .accordion .title:hover,
162
+ .ui.styled.accordion .accordion .active.title {
163
+ background: @styledTitleHoverBackground;
164
+ color: @styledTitleHoverColor;
165
+ }
166
+ .ui.styled.accordion .accordion .title:hover,
167
+ .ui.styled.accordion .accordion .active.title {
168
+ background: @styledHoverChildTitleBackground;
169
+ color: @styledHoverChildTitleColor;
170
+ }
171
+
172
+
173
+ /* Active */
174
+ .ui.styled.accordion .active.title {
175
+ background: @styledActiveTitleBackground;
176
+ color: @styledActiveTitleColor;
177
+ }
178
+ .ui.styled.accordion .accordion .active.title {
179
+ background: @styledActiveChildTitleBackground;
180
+ color: @styledActiveChildTitleColor;
181
+ }
182
+
183
+
184
+ /*******************************
185
+ States
186
+ *******************************/
187
+
188
+ /*--------------
189
+ Active
190
+ ---------------*/
191
+
192
+ .ui.accordion .active.content,
193
+ .ui.accordion .accordion .active.content {
194
+ display: block;
195
+ }
196
+
197
+ /*******************************
198
+ Variations
199
+ *******************************/
200
+
201
+ /*--------------
202
+ Fluid
203
+ ---------------*/
204
+
205
+ .ui.fluid.accordion,
206
+ .ui.fluid.accordion .accordion {
207
+ width: 100%;
208
+ }
209
+
210
+ /*--------------
211
+ Inverted
212
+ ---------------*/
213
+
214
+ .ui.inverted.accordion .title:not(.ui) {
215
+ color: @invertedTitleColor;
216
+ }
217
+
218
+ .loadUIOverrides();
219
+
@@ -214,4 +214,4 @@ WechatRichmediaTemplatePreview.propTypes = {
214
214
  };
215
215
 
216
216
  export default WechatRichmediaTemplatePreview;
217
- // export default connect(null, null)(WechatRichmediaTemplatePreview);
217
+ // export default connect(null, null)(WechatRichmediaTemplatePreview);
@@ -17,8 +17,12 @@ import messages from './messages';
17
17
  import { WECHAT } from '../../v2Containers/CreativesContainer/constants';
18
18
  const wechatBodyNew = require('./assets/images/wechat_mobile_android.svg');
19
19
  const smsMobileAndroid = require('./assets/images/sms_mobile_android.svg');
20
+ const lineMobileAndroid = require('../../assets/line.png');
21
+ const lineImgPlaceholder = require('../../assets/line-image-placeholder.svg');
22
+ const lineStickerPlaceholder = require('../../assets/smiley-placeholder.svg');
20
23
  const androidPushMessagePhone = require('./assets/images/androidPushMessage.svg');
21
24
  const iPhonePushMessagePhone = require('./assets/images/iPhonePushMessage.svg');
25
+ import { CAP_COLOR_03, CAP_WHITE, FONT_COLOR_01, CAP_G08 } from '@capillarytech/cap-ui-library/styled/variables';
22
26
 
23
27
  class TemplatePreview extends React.Component { // eslint-disable-line react/prefer-stateless-function
24
28
  onPreviewContentClicked = (channel) => {
@@ -151,6 +155,25 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
151
155
  const showTestAndPreview = showTestAndPreviewIcon &&
152
156
  channel !== WECHAT &&
153
157
  ['outbound', 'library'].includes(module);
158
+
159
+ const renderLineMultiText = (content) => {
160
+ let textCount = 0;
161
+ return content.map((item) => {
162
+ const { type, messageContent = '' } = item || {};
163
+ if (type === 'text' && messageContent) {
164
+ textCount += 1;
165
+ return (
166
+ <p style={{fontSize: 16, fontWeight: "bold", margin: 0}}>
167
+ {this.props.intl.formatMessage(messages.textMessageLabel)}
168
+ {textCount}: ({messageContent.length}/{1600} {this.props.intl.formatMessage(messages.textMessageCharacter)})
169
+ </p>
170
+ )
171
+ }
172
+ return null
173
+ });
174
+ }
175
+
176
+
154
177
  return (
155
178
  <CapRow>
156
179
  {this.props.showCount && <CapColumn span={16}>
@@ -285,25 +308,154 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
285
308
  }
286
309
  {
287
310
  channel && channel.toLowerCase() === 'line' ? (
288
- <div className="shell-v2 align-center" id="sms-preview">
289
- <CapImage className="preview-image" src={smsMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
290
- <div className="msgContainer line-preview">
291
- <div className="sms-icon" style={{ left: 10, borderRadius: '50%', width: '20px', height: '20px', background: '#2E89DF' }}></div>
292
- <div className="message-pop align-left" style={{ background: '#ffffff', color: '#333333' }}>
311
+ <div className="shell-v2 align-center" id="sms-preview" style={{ marginLeft: 12 }}>
312
+ <CapImage className="preview-image" src={lineMobileAndroid} alt={this.props.intl.formatMessage(messages.previewGenerated)}/>
313
+ <div
314
+ className="msgContainer line-preview"
315
+ style={{
316
+ maxHeight: 300,
317
+ overflow: 'scroll',
318
+ flexDirection: 'column',
319
+ marginLeft: 40,
320
+ }}
321
+ >
322
+ <div className="sms-icon"
323
+ style={{
324
+ left: 0,
325
+ top: 8,
326
+ borderRadius: '50%',
327
+ width: 20,
328
+ height: 20,
329
+ background: CAP_COLOR_03,
330
+ paddingRight: 5
331
+ }}
332
+ >
333
+ {this.props.LineAccountName}
334
+ </div>
335
+ <>
293
336
  {
294
- content && Object.keys(content).map((item) => {
295
- if (item === 'bodyText' && content[item]) {
296
- return content[item];
337
+ content.map((item) => {
338
+ const {
339
+ type,
340
+ messageContent,
341
+ previewImageUrl = lineImgPlaceholder,
342
+ baseUrl,
343
+ selectedSticker = {
344
+ stickerUrl: lineStickerPlaceholder,
345
+ },
346
+ } = item || {};
347
+ if (type === 'text') {
348
+ return (
349
+ <div
350
+ className="message-pop align-left"
351
+ style={{
352
+ background: CAP_WHITE,
353
+ color: FONT_COLOR_01,
354
+ borderRadius: 8,
355
+ position: 'static',
356
+ margin: '6px 0 20px 28px',
357
+ height: 'auto'
358
+ }}
359
+ >
360
+ <p style={{ marginBottom: 5 }}>{messageContent || ''}</p>
361
+ </div>
362
+ );
297
363
  }
298
- if (item === 'bodyImage' && content[item]) {
299
- return <CapImage src={content[item]} alt="brand-name" style={{maxWidth: '100%'}}/>;
364
+ if ((type === 'image' && previewImageUrl)) {
365
+ return (
366
+ <div
367
+ className="message-pop align-left"
368
+ style={{
369
+ background: CAP_G08,
370
+ color: FONT_COLOR_01,
371
+ borderRadius: 8,
372
+ position: 'static',
373
+ margin: '6px 0 20px 28px',
374
+ height: 184,
375
+ display: 'flex',
376
+ justifyContent: 'center',
377
+ alignItems: 'center',
378
+ }}
379
+ >
380
+ <CapImage
381
+ src={previewImageUrl}
382
+ alt="brand-name"
383
+ rest={{
384
+ style: {
385
+ maxWidth: '100%',
386
+ marginBottom: 5,
387
+ },
388
+ }}
389
+ />
390
+ </div>
391
+ );
392
+ }
393
+ if ((type === 'imagemap' && baseUrl)) {
394
+ return (
395
+ <div
396
+ className="message-pop align-left"
397
+ style={{
398
+ background: CAP_G08,
399
+ color: FONT_COLOR_01,
400
+ borderRadius: 8,
401
+ position: 'static',
402
+ margin: '6px 0 20px 28px',
403
+ height: 184,
404
+ display: 'flex',
405
+ justifyContent: 'center',
406
+ alignItems: 'center',
407
+ }}
408
+ >
409
+ <CapImage
410
+ src={baseUrl ? `${baseUrl}/1040` : lineImgPlaceholder}
411
+ alt="brand-name"
412
+ rest={{
413
+ style: {
414
+ maxWidth: '100%',
415
+ marginBottom: 5,
416
+ },
417
+ }}
418
+ />
419
+ </div>
420
+ );
421
+ }
422
+ if (type === 'sticker' && selectedSticker) {
423
+ return (
424
+ <div
425
+ className="message-pop align-left"
426
+ style={{
427
+ background: 'transparent',
428
+ color: FONT_COLOR_01,
429
+ color: FONT_COLOR_01,
430
+ position: 'static',
431
+ margin: '6px 0 20px 10px',
432
+ display: 'flex',
433
+ justifyContent: 'center',
434
+ alignItems: 'center',
435
+ }}
436
+ >
437
+ <CapImage
438
+ src={selectedSticker.stickerUrl}
439
+ style={{maxWidth: '100%', marginBottom: 5 }}
440
+ rest={{
441
+ style: {
442
+ maxWidth: '100%',
443
+ marginBottom: 5,
444
+ },
445
+ height: 70,
446
+ onMouseOut: e => (e.currentTarget.src = selectedSticker.stickerUrl),
447
+ onMouseOver: e => (e.currentTarget.src = selectedSticker.animatedStickerUrl || selectedSticker.stickerUrl),
448
+ }}
449
+ />
450
+ </div>
451
+ );
300
452
  }
301
453
  return null;
302
454
  })
303
455
  }
304
- </div>
456
+ </>
305
457
  </div>
306
- { (content && content.bodyText) ? <p style={{fontSize: 16, fontWeight: "bold"}}>Chars Count: {content.bodyText.length} / (1600)</p> : '' }
458
+ {renderLineMultiText(content)}
307
459
  </div>
308
460
  ) : ''
309
461
  }
@@ -58,4 +58,12 @@ export default defineMessages({
58
58
  id: 'creatives.componentsV2.TemplatePreview.testMessage',
59
59
  defaultMessage: 'Test Message',
60
60
  },
61
+ textMessageLabel: {
62
+ id: 'creatives.componentsV2.TemplatePreview.textMessageLabel',
63
+ defaultMessage: 'text msg-',
64
+ },
65
+ textMessageCharacter: {
66
+ id: 'creatives.componentsV2.TemplatePreview.textMessageCharacter',
67
+ defaultMessage: 'characters',
68
+ },
61
69
  });