@capillarytech/creatives-library 7.12.3 → 7.12.6

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.
@@ -662,6 +662,7 @@ export class Templates extends React.Component { // eslint-disable-line react/pr
662
662
  const { name = '', versions = {} } = whatsappSelectedTemplateData;
663
663
  creativesParams.whatsappTemplateName = name;
664
664
  creativesParams.whatsappTemplateCategory = get(versions, `base.content.whatsapp.category`, '');
665
+ creativesParams.whatsappTemplateLanguageCode = get(versions, `base.content.whatsapp.languages[0].language`, '');
665
666
  }
666
667
  }
667
668
  creativesParams.type = this.state.channel.toUpperCase();
@@ -129,3 +129,290 @@ export const WHATSAPP_MEDIA_TYPES = {
129
129
  IMAGE: 'IMAGE',
130
130
  VIDEO: 'VIDEO',
131
131
  };
132
+
133
+ export const LANGUAGE_OPTIONS = [
134
+ {
135
+ value: 'af',
136
+ label: <FormattedMessage {...messages.afrikaans} />,
137
+ },
138
+ {
139
+ value: 'sq',
140
+ label: <FormattedMessage {...messages.albanian} />,
141
+ },
142
+ {
143
+ value: 'ar',
144
+ label: <FormattedMessage {...messages.arabic} />,
145
+ },
146
+ {
147
+ value: 'az',
148
+ label: <FormattedMessage {...messages.azerbaijani} />,
149
+ },
150
+ {
151
+ value: 'bn',
152
+ label: <FormattedMessage {...messages.bengali} />,
153
+ },
154
+ {
155
+ value: 'bg',
156
+ label: <FormattedMessage {...messages.bulgarian} />,
157
+ },
158
+ {
159
+ value: 'ca',
160
+ label: <FormattedMessage {...messages.catalan} />,
161
+ },
162
+ {
163
+ value: 'zh_CN',
164
+ label: <FormattedMessage {...messages.chineseCHN} />,
165
+ },
166
+ {
167
+ value: 'zh_HK',
168
+ label: <FormattedMessage {...messages.chineseHKG} />,
169
+ },
170
+ {
171
+ value: 'zh_TW',
172
+ label: <FormattedMessage {...messages.chineseTAI} />,
173
+ },
174
+ {
175
+ value: 'hr',
176
+ label: <FormattedMessage {...messages.croatian} />,
177
+ },
178
+ {
179
+ value: 'cs',
180
+ label: <FormattedMessage {...messages.czech} />,
181
+ },
182
+ {
183
+ value: 'da',
184
+ label: <FormattedMessage {...messages.danish} />,
185
+ },
186
+ {
187
+ value: 'nl',
188
+ label: <FormattedMessage {...messages.dutch} />,
189
+ },
190
+ {
191
+ value: 'en',
192
+ label: <FormattedMessage {...messages.english} />,
193
+ },
194
+ {
195
+ value: 'en_GB',
196
+ label: <FormattedMessage {...messages.englishUK} />,
197
+ },
198
+ {
199
+ value: 'en_US',
200
+ label: <FormattedMessage {...messages.englishUS} />,
201
+ },
202
+ {
203
+ value: 'et',
204
+ label: <FormattedMessage {...messages.estonian} />,
205
+ },
206
+ {
207
+ value: 'fil',
208
+ label: <FormattedMessage {...messages.filipino} />,
209
+ },
210
+ {
211
+ value: 'fi',
212
+ label: <FormattedMessage {...messages.finnish} />,
213
+ },
214
+ {
215
+ value: 'fr',
216
+ label: <FormattedMessage {...messages.french} />,
217
+ },
218
+ {
219
+ value: 'ka',
220
+ label: <FormattedMessage {...messages.georgian} />,
221
+ },
222
+ {
223
+ value: 'de',
224
+ label: <FormattedMessage {...messages.german} />,
225
+ },
226
+ {
227
+ value: 'el',
228
+ label: <FormattedMessage {...messages.greek} />,
229
+ },
230
+ {
231
+ value: 'gu',
232
+ label: <FormattedMessage {...messages.gujarati} />,
233
+ },
234
+ {
235
+ value: 'ha',
236
+ label: <FormattedMessage {...messages.hausa} />,
237
+ },
238
+ {
239
+ value: 'he',
240
+ label: <FormattedMessage {...messages.hebrew} />,
241
+ },
242
+ {
243
+ value: 'hi',
244
+ label: <FormattedMessage {...messages.hindi} />,
245
+ },
246
+ {
247
+ value: 'hu',
248
+ label: <FormattedMessage {...messages.hungarian} />,
249
+ },
250
+ {
251
+ value: 'id',
252
+ label: <FormattedMessage {...messages.indonesian} />,
253
+ },
254
+ {
255
+ value: 'ga',
256
+ label: <FormattedMessage {...messages.irish} />,
257
+ },
258
+ {
259
+ value: 'it',
260
+ label: <FormattedMessage {...messages.italian} />,
261
+ },
262
+ {
263
+ value: 'ja',
264
+ label: <FormattedMessage {...messages.japanese} />,
265
+ },
266
+ {
267
+ value: 'kn',
268
+ label: <FormattedMessage {...messages.kannada} />,
269
+ },
270
+ {
271
+ value: 'kk',
272
+ label: <FormattedMessage {...messages.kazakh} />,
273
+ },
274
+ {
275
+ value: 'rw_RW',
276
+ label: <FormattedMessage {...messages.kinyarwanda} />,
277
+ },
278
+ {
279
+ value: 'ko',
280
+ label: <FormattedMessage {...messages.korean} />,
281
+ },
282
+ {
283
+ value: 'ky_KG',
284
+ label: <FormattedMessage {...messages.kyrgyz} />,
285
+ },
286
+ {
287
+ value: 'lo',
288
+ label: <FormattedMessage {...messages.lao} />,
289
+ },
290
+ {
291
+ value: 'lv',
292
+ label: <FormattedMessage {...messages.latvian} />,
293
+ },
294
+ {
295
+ value: 'lt',
296
+ label: <FormattedMessage {...messages.lithuanian} />,
297
+ },
298
+ {
299
+ value: 'mk',
300
+ label: <FormattedMessage {...messages.macedonian} />,
301
+ },
302
+ {
303
+ value: 'ms',
304
+ label: <FormattedMessage {...messages.malay} />,
305
+ },
306
+ {
307
+ value: 'ml',
308
+ label: <FormattedMessage {...messages.malayalam} />,
309
+ },
310
+ {
311
+ value: 'mr',
312
+ label: <FormattedMessage {...messages.marathi} />,
313
+ },
314
+ {
315
+ value: 'nb',
316
+ label: <FormattedMessage {...messages.norwegian} />,
317
+ },
318
+ {
319
+ value: 'fa',
320
+ label: <FormattedMessage {...messages.persian} />,
321
+ },
322
+ {
323
+ value: 'pl',
324
+ label: <FormattedMessage {...messages.polish} />,
325
+ },
326
+ {
327
+ value: 'pt_BR',
328
+ label: <FormattedMessage {...messages.portugueseBR} />,
329
+ },
330
+ {
331
+ value: 'pt_PT',
332
+ label: <FormattedMessage {...messages.portuguesePOR} />,
333
+ },
334
+ {
335
+ value: 'pa',
336
+ label: <FormattedMessage {...messages.punjabi} />,
337
+ },
338
+ {
339
+ value: 'ro',
340
+ label: <FormattedMessage {...messages.romanian} />,
341
+ },
342
+ {
343
+ value: 'ru',
344
+ label: <FormattedMessage {...messages.russian} />,
345
+ },
346
+ {
347
+ value: 'sr',
348
+ label: <FormattedMessage {...messages.serbian} />,
349
+ },
350
+ {
351
+ value: 'sk',
352
+ label: <FormattedMessage {...messages.slovak} />,
353
+ },
354
+ {
355
+ value: 'sl',
356
+ label: <FormattedMessage {...messages.slovenian} />,
357
+ },
358
+ {
359
+ value: 'es',
360
+ label: <FormattedMessage {...messages.spanish} />,
361
+ },
362
+ {
363
+ value: 'es_AR',
364
+ label: <FormattedMessage {...messages.spanishARG} />,
365
+ },
366
+ {
367
+ value: 'es_ES',
368
+ label: <FormattedMessage {...messages.spanishSPA} />,
369
+ },
370
+ {
371
+ value: 'es_MX',
372
+ label: <FormattedMessage {...messages.spanishMEX} />,
373
+ },
374
+ {
375
+ value: 'sw',
376
+ label: <FormattedMessage {...messages.swahili} />,
377
+ },
378
+ {
379
+ value: 'sv',
380
+ label: <FormattedMessage {...messages.swedish} />,
381
+ },
382
+ {
383
+ value: 'ta',
384
+ label: <FormattedMessage {...messages.tamil} />,
385
+ },
386
+ {
387
+ value: 'te',
388
+ label: <FormattedMessage {...messages.telugu} />,
389
+ },
390
+ {
391
+ value: 'th',
392
+ label: <FormattedMessage {...messages.thai} />,
393
+ },
394
+ {
395
+ value: 'tr',
396
+ label: <FormattedMessage {...messages.turkish} />,
397
+ },
398
+ {
399
+ value: 'uk',
400
+ label: <FormattedMessage {...messages.ukrainian} />,
401
+ },
402
+ {
403
+ value: 'ur',
404
+ label: <FormattedMessage {...messages.urdu} />,
405
+ },
406
+ {
407
+ value: 'uz',
408
+ label: <FormattedMessage {...messages.uzbek} />,
409
+ },
410
+ {
411
+ value: 'vi',
412
+ label: <FormattedMessage {...messages.vietnamese} />,
413
+ },
414
+ {
415
+ value: 'zu',
416
+ label: <FormattedMessage {...messages.zulu} />,
417
+ },
418
+ ];
@@ -41,6 +41,7 @@ import {
41
41
  TEMPLATE_MESSAGE_MAX_LENGTH,
42
42
  WHATSAPP,
43
43
  CATEGORY_OPTIONS,
44
+ LANGUAGE_OPTIONS,
44
45
  WHATSAPP_STATUSES,
45
46
  TAG,
46
47
  EMBEDDED,
@@ -89,6 +90,9 @@ export const Whatsapp = (props) => {
89
90
  const [templateCategory, setTemplateCategory] = useState(
90
91
  formatMessage(messages.select),
91
92
  );
93
+ const [templateLanguage, setTemplateLanguage] = useState(
94
+ formatMessage(messages.select),
95
+ );
92
96
  const [templateMessage, setTemplateMessage] = useState('');
93
97
  const [templateMessageError, setTemplateMessageError] = useState(false);
94
98
  const [addedVarCount, setAddedVarCount] = useState(0);
@@ -172,10 +176,12 @@ export const Whatsapp = (props) => {
172
176
  category = '',
173
177
  status = WHATSAPP_STATUSES.unsubmitted,
174
178
  rejection_reason = null,
179
+ languages = [],
175
180
  } = editContent;
176
181
  setTemplateCategory(category);
177
182
  setTemplateStatus(status);
178
183
  setTemplateRejectionReason(rejection_reason);
184
+ setTemplateLanguage(languages[0]?.language);
179
185
  computeTempMsgArray();
180
186
  }
181
187
  }, [editData.templateDetails || templateData]);
@@ -440,6 +446,10 @@ export const Whatsapp = (props) => {
440
446
  setTemplateCategory(value);
441
447
  };
442
448
 
449
+ const onTemplateLanguageChange = (value) => {
450
+ setTemplateLanguage(value);
451
+ };
452
+
443
453
  const onAddVar = () => {
444
454
  const validVarArr = templateMessage.match(validVarRegex) || [];
445
455
  const tempMsg = `${templateMessage}{{${validVarArr.length + 1}}}`;
@@ -503,18 +513,14 @@ export const Whatsapp = (props) => {
503
513
  return errorMessage;
504
514
  };
505
515
 
506
- const getPayloadContent = () => (
507
- (isEditFlow && !isFullMode)
508
- ? `${updatedSmsEditor.join('')}\n${formatMessage(
509
- messages.templateMessageUnsubscribeText,
510
- )}`
511
- : `${templateMessage}\n${formatMessage(
512
- messages.modifiedUnsubscribeText,
513
- {
514
- value: `{{${addedVarCount + 1}}}`,
515
- },
516
- )}`
517
- );
516
+ const getPayloadContent = () =>
517
+ isEditFlow && !isFullMode
518
+ ? `${updatedSmsEditor.join('')}\n${formatMessage(
519
+ messages.templateMessageUnsubscribeText,
520
+ )}`
521
+ : `${templateMessage}\n${formatMessage(messages.modifiedUnsubscribeText, {
522
+ value: `{{${addedVarCount + 1}}}`,
523
+ })}`;
518
524
 
519
525
  const createPayload = () => ({
520
526
  name: templateName,
@@ -525,7 +531,7 @@ export const Whatsapp = (props) => {
525
531
  category: templateCategory,
526
532
  languages: [
527
533
  {
528
- language: 'en',
534
+ language: templateLanguage,
529
535
  content: getPayloadContent(),
530
536
  },
531
537
  ],
@@ -590,8 +596,12 @@ export const Whatsapp = (props) => {
590
596
  if (templateName.trim() === '' || templateNameError) {
591
597
  return true;
592
598
  }
593
- //if template category is not selected
594
- if (templateCategory === 'Select') {
599
+ //if template category or language is not selected
600
+ if (
601
+ [templateCategory, templateLanguage].includes(
602
+ formatMessage(messages.select),
603
+ )
604
+ ) {
595
605
  return true;
596
606
  }
597
607
  //if template message is not entered
@@ -624,7 +634,7 @@ export const Whatsapp = (props) => {
624
634
  }
625
635
  />
626
636
  <CapInput
627
- id={`whatsapp_template_name_input`}
637
+ id="whatsapp_template_name_input"
628
638
  onChange={onTemplateNameChange}
629
639
  errorMessage={templateNameError}
630
640
  placeholder={formatMessage(globalMessages.templateNamePlaceholder)}
@@ -635,18 +645,18 @@ export const Whatsapp = (props) => {
635
645
  {/* template category */}
636
646
  {renderLabel('templateCategoryLabel')}
637
647
  <CapSelect
638
- id={'select-whatsapp-category'}
648
+ id="select-whatsapp-category"
639
649
  options={templateCategoryOptions || []}
640
650
  onChange={onTemplateCategoryChange}
641
651
  value={templateCategory}
642
652
  />
643
653
  {/* template language */}
644
654
  {renderLabel('messageLanguageLabel')}
645
- <CapInput
646
- id={`whatsapp_template_language_input`}
647
- defaultValue={'English'}
648
- size="default"
649
- disabled
655
+ <CapSelect
656
+ id="select-whatsapp-language"
657
+ options={LANGUAGE_OPTIONS || []}
658
+ onChange={onTemplateLanguageChange}
659
+ value={templateLanguage}
650
660
  />
651
661
  {/* template mdeia type */}
652
662
  {renderLabel('mediaLabel')}
@@ -682,7 +692,9 @@ export const Whatsapp = (props) => {
682
692
  type="flat"
683
693
  isAddBtn
684
694
  onClick={onAddVar}
685
- disabled={(addedVarCount >= 19 || templateMessageError) && templateMessage}
695
+ disabled={
696
+ (addedVarCount >= 19 || templateMessageError) && templateMessage
697
+ }
686
698
  >
687
699
  {formatMessage(messages.addVar)}
688
700
  </CapButton>
@@ -1,4 +1,4 @@
1
- @import "~@capillarytech/cap-ui-library/styles/_variables";
1
+ @import '~@capillarytech/cap-ui-library/styles/_variables';
2
2
 
3
3
  .cap-whatsapp-creatives {
4
4
  .whatsapp-render-heading {
@@ -52,7 +52,8 @@
52
52
  margin-right: $CAP_SPACE_16;
53
53
  width: 95%;
54
54
  }
55
- #select-whatsapp-category {
55
+ #select-whatsapp-category,
56
+ #select-whatsapp-language {
56
57
  width: 100%;
57
58
  }
58
59