@capillarytech/creatives-library 7.10.39 → 7.10.41
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.
- package/containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/containers/Email/index.js +2 -3
- package/index.js +6 -0
- package/package.json +1 -1
- package/routes.js +5 -0
- package/services/api.js +6 -1
- package/v2Components/TemplatePreview/_templatePreview.scss +7 -0
- package/v2Components/TemplatePreview/assets/images/whatsapp_mobile_android.svg +2041 -0
- package/v2Components/TemplatePreview/index.js +57 -3
- package/v2Components/TemplatePreview/messages.js +8 -0
- package/v2Containers/Assets/Gallery/tests/__snapshots__/reducer.test.js.snap +0 -2
- package/v2Containers/Assets/images/whatsappIllustration.png +0 -0
- package/v2Containers/CreativesContainer/SlideBoxContent.js +31 -2
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +31 -3
- package/v2Containers/CreativesContainer/constants.js +1 -0
- package/v2Containers/CreativesContainer/messages.js +4 -0
- package/v2Containers/Email/index.js +1 -3
- package/v2Containers/Line/Container/index.js +1 -1
- package/v2Containers/Templates/_templates.scss +43 -0
- package/v2Containers/Templates/actions.js +18 -10
- package/v2Containers/Templates/constants.js +3 -1
- package/v2Containers/Templates/index.js +296 -44
- package/v2Containers/Templates/messages.js +32 -0
- package/v2Containers/Templates/reducer.js +3 -1
- package/v2Containers/TemplatesV2/index.js +2 -0
- package/v2Containers/TemplatesV2/messages.js +4 -0
- package/v2Containers/Whatsapp/actions.js +34 -0
- package/v2Containers/Whatsapp/constants.js +125 -0
- package/v2Containers/Whatsapp/index.js +831 -0
- package/v2Containers/Whatsapp/index.scss +56 -0
- package/v2Containers/Whatsapp/messages.js +221 -0
- package/v2Containers/Whatsapp/reducer.js +54 -0
- package/v2Containers/Whatsapp/sagas.js +77 -0
- package/v2Containers/Whatsapp/selectors.js +12 -0
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +120831 -0
- package/v2Containers/Whatsapp/tests/index.test.js +132 -0
- package/v2Containers/Whatsapp/tests/mockData.js +10 -0
- package/v2Containers/Whatsapp/utils.js +106 -0
|
@@ -94,6 +94,10 @@ export default defineMessages({
|
|
|
94
94
|
id: `${scope}.editButton`,
|
|
95
95
|
defaultMessage: "Edit",
|
|
96
96
|
},
|
|
97
|
+
"whatsappOverview": {
|
|
98
|
+
id: `${scope}.whatsappOverview`,
|
|
99
|
+
defaultMessage: "Overview",
|
|
100
|
+
},
|
|
97
101
|
"duplicateButton": {
|
|
98
102
|
id: `${scope}.duplicateButton`,
|
|
99
103
|
defaultMessage: "Duplicate",
|
|
@@ -130,6 +134,10 @@ export default defineMessages({
|
|
|
130
134
|
id: `${scope}.noAccountsPresentLine`,
|
|
131
135
|
defaultMessage: "Line accounts are not setup for your brand",
|
|
132
136
|
},
|
|
137
|
+
"noAccountsPresentWhatsapp": {
|
|
138
|
+
id: `${scope}.noAccountsPresentWhatsapp`,
|
|
139
|
+
defaultMessage: "Whatsapp accounts are not setup for your brand",
|
|
140
|
+
},
|
|
133
141
|
"noTemplatesMessage": {
|
|
134
142
|
id: `${scope}.noTemplatesMessage`,
|
|
135
143
|
defaultMessage: "No templates available",
|
|
@@ -306,6 +314,10 @@ export default defineMessages({
|
|
|
306
314
|
id: `${scope}.newEmailTemplate`,
|
|
307
315
|
defaultMessage: 'New email {template}',
|
|
308
316
|
},
|
|
317
|
+
"newWhatsappTemplate": {
|
|
318
|
+
id: `${scope}.newWhatsappTemplate`,
|
|
319
|
+
defaultMessage: 'Add new Whatsapp {template}',
|
|
320
|
+
},
|
|
309
321
|
"newNotificationTemplate": {
|
|
310
322
|
id: `${scope}.newNotificationTemplate`,
|
|
311
323
|
defaultMessage: 'New notification {template}',
|
|
@@ -318,6 +330,14 @@ export default defineMessages({
|
|
|
318
330
|
id: `${scope}.emailTitleIllustartion`,
|
|
319
331
|
defaultMessage: 'Create an email {template}',
|
|
320
332
|
},
|
|
333
|
+
"whatsappTitleIllustration": {
|
|
334
|
+
id: `${scope}.whatsappTitleIllustration`,
|
|
335
|
+
defaultMessage: 'Add a new Whatsapp creative {template}',
|
|
336
|
+
},
|
|
337
|
+
"whatsappDescIllustration": {
|
|
338
|
+
id: `${scope}.whatsappDescIllustration`,
|
|
339
|
+
defaultMessage: 'These templates can be reused when creating a\nnew message content.',
|
|
340
|
+
},
|
|
321
341
|
"smsTitleIllustartion": {
|
|
322
342
|
id: `${scope}.smsTitleIllustartion`,
|
|
323
343
|
defaultMessage: 'Create an SMS {template}',
|
|
@@ -346,6 +366,10 @@ export default defineMessages({
|
|
|
346
366
|
id: `${scope}.lineAccount`,
|
|
347
367
|
defaultMessage: 'Line account',
|
|
348
368
|
},
|
|
369
|
+
"whatsappAccount": {
|
|
370
|
+
id: `${scope}.whatsappAccount`,
|
|
371
|
+
defaultMessage: 'Whatsapp account',
|
|
372
|
+
},
|
|
349
373
|
"all": {
|
|
350
374
|
id: `${scope}.all`,
|
|
351
375
|
defaultMessage: 'All',
|
|
@@ -390,4 +414,12 @@ export default defineMessages({
|
|
|
390
414
|
id: `${scope}.uploadTemplate`,
|
|
391
415
|
defaultMessage: 'Upload template',
|
|
392
416
|
},
|
|
417
|
+
"clearAll": {
|
|
418
|
+
id: `${scope}.clearAll`,
|
|
419
|
+
defaultMessage: 'Clear all',
|
|
420
|
+
},
|
|
421
|
+
"whatsappMaxTemplates": {
|
|
422
|
+
id: `${scope}.whatsappMaxTemplates`,
|
|
423
|
+
defaultMessage: 'WhatsApp allows {maxCount} approved templates. To accommodate new approved templates either delete the existing one or reach out to Capillary POC to increase the limit.',
|
|
424
|
+
},
|
|
393
425
|
});
|
|
@@ -82,9 +82,11 @@ function templatesReducer(state = initialState, action) {
|
|
|
82
82
|
return state
|
|
83
83
|
.set('selectedWeChatAccount', fromJS(action.weChatAccount));
|
|
84
84
|
case types.SET_LINE_ACCOUNT:
|
|
85
|
-
return state.set('selectedLineAccount', fromJS(action.
|
|
85
|
+
return state.set('selectedLineAccount', fromJS(action.account));
|
|
86
86
|
case types.SET_VIBER_ACCOUNT:
|
|
87
87
|
return state.set('selectedViberAccount', fromJS(action.viberAccount));
|
|
88
|
+
case types.SET_WHATSAPP_ACCOUNT:
|
|
89
|
+
return state.set('selectedWhatsappAccount', fromJS(action.account));
|
|
88
90
|
case types.SET_FACEBOOK_ACCOUNT:
|
|
89
91
|
return state.set('selectedFacebookAccount', fromJS(action.faceBookAccount));
|
|
90
92
|
case types.RESET_ACCOUNT:
|
|
@@ -23,6 +23,7 @@ import Templates from '../Templates';
|
|
|
23
23
|
import CallTask from '../CallTask';
|
|
24
24
|
import Facebook from '../Facebook';
|
|
25
25
|
import Viber from '../Viber';
|
|
26
|
+
import Whatsapp from '../Whatsapp';
|
|
26
27
|
import Line from '../Line/Container';
|
|
27
28
|
import FTP from '../FTP';
|
|
28
29
|
import Gallery from '../Assets/Gallery';
|
|
@@ -60,6 +61,7 @@ export class TemplatesV2 extends React.Component { // eslint-disable-line react/
|
|
|
60
61
|
line: {content: <></>, tab: intl.formatMessage(messages.line), key: 'line'},
|
|
61
62
|
viber: {content: <></>, tab: intl.formatMessage(messages.viber), key: 'viber'},
|
|
62
63
|
facebook: {content: <div></div>, tab: intl.formatMessage(messages.facebook), key: 'facebook'},
|
|
64
|
+
whatsapp: { content: <></>, tab: intl.formatMessage(messages.whatsapp), key: 'whatsapp' },
|
|
63
65
|
};
|
|
64
66
|
let filteredPanes = Object.keys(defaultPanes)
|
|
65
67
|
.filter((key) => !channelsToHide.includes(key)).reduce((obj = [], key) => {
|
|
@@ -54,6 +54,10 @@ export default defineMessages({
|
|
|
54
54
|
id: 'creatives.containersV2.TemplatesV2.viber',
|
|
55
55
|
defaultMessage: 'Viber',
|
|
56
56
|
},
|
|
57
|
+
whatsapp: {
|
|
58
|
+
id: 'creatives.containersV2.TemplatesV2.whatsapp',
|
|
59
|
+
defaultMessage: 'WhatsApp',
|
|
60
|
+
},
|
|
57
61
|
gallery: {
|
|
58
62
|
id: 'creatives.containersV2.TemplatesV2.gallery',
|
|
59
63
|
defaultMessage: 'Gallery',
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TEMPLATE_CREATE_REQUEST,
|
|
3
|
+
CLEAR_CREATE_RESPONSE_REQUEST,
|
|
4
|
+
GET_TEMPLATE_DETAILS_REQUEST,
|
|
5
|
+
RESET_EDIT_TEMPLATE,
|
|
6
|
+
WHATSAPP,
|
|
7
|
+
} from './constants';
|
|
8
|
+
|
|
9
|
+
export function createWhatsappTemplate(payload, callback) {
|
|
10
|
+
return {
|
|
11
|
+
type: TEMPLATE_CREATE_REQUEST,
|
|
12
|
+
payload,
|
|
13
|
+
callback,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export function clearCreateResponse() {
|
|
17
|
+
return {
|
|
18
|
+
type: CLEAR_CREATE_RESPONSE_REQUEST,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
// FOR EDIT
|
|
22
|
+
export function getTemplateDetails(id, callback) {
|
|
23
|
+
return {
|
|
24
|
+
type: GET_TEMPLATE_DETAILS_REQUEST,
|
|
25
|
+
id,
|
|
26
|
+
channel: WHATSAPP,
|
|
27
|
+
callback,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function resetEditTemplate() {
|
|
31
|
+
return {
|
|
32
|
+
type: RESET_EDIT_TEMPLATE,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import messages from './messages';
|
|
4
|
+
import {
|
|
5
|
+
CAP_ORANGE,
|
|
6
|
+
CAP_PURPLE02,
|
|
7
|
+
CAP_PURPLE03,
|
|
8
|
+
CAP_ORANGE01,
|
|
9
|
+
CAP_GREEN01,
|
|
10
|
+
CAP_GREEN02,
|
|
11
|
+
} from '@capillarytech/cap-ui-library/styled/variables';
|
|
12
|
+
|
|
13
|
+
export const UNSUBSCRIBE_TEXT_LENGTH = 36;
|
|
14
|
+
export const TEMPLATE_MESSAGE_MAX_LENGTH = 1024;
|
|
15
|
+
export const WHATSAPP = 'WHATSAPP';
|
|
16
|
+
|
|
17
|
+
export const TEMPLATE_CREATE_REQUEST =
|
|
18
|
+
'app/v2Containers/Whatsapp/TEMPLATE_CREATE_REQUEST';
|
|
19
|
+
export const TEMPLATE_CREATE_SUCCESS =
|
|
20
|
+
'app/v2Containers/Whatsapp/TEMPLATE_CREATE_SUCCESS';
|
|
21
|
+
export const TEMPLATE_CREATE_FAILURE =
|
|
22
|
+
'app/v2Containers/Whatsapp/TEMPLATE_CREATE_FAILURE';
|
|
23
|
+
export const CLEAR_CREATE_RESPONSE_REQUEST =
|
|
24
|
+
'app/v2Containers/Whatsapp/CLEAR_CREATE_RESPONSE_REQUEST';
|
|
25
|
+
// FOR EDIT
|
|
26
|
+
export const GET_TEMPLATE_DETAILS_REQUEST =
|
|
27
|
+
'app/v2Containers/Whatsapp/Edit/GET_TEMPLATE_DETAILS_REQUEST';
|
|
28
|
+
export const GET_TEMPLATE_DETAILS_SUCCESS =
|
|
29
|
+
'app/v2Containers/Whatsapp/Edit/GET_TEMPLATE_DETAILS_SUCCESS';
|
|
30
|
+
export const GET_TEMPLATE_DETAILS_FAILURE =
|
|
31
|
+
'app/v2Containers/Whatsapp/Edit/GET_TEMPLATE_DETAILS_FAILURE';
|
|
32
|
+
export const RESET_EDIT_TEMPLATE =
|
|
33
|
+
'app/v2Containers/Whatsapp/Edit//RESET_EDIT_TEMPLATE';
|
|
34
|
+
|
|
35
|
+
export const STATUS = 'status';
|
|
36
|
+
export const CATEGORY = 'category';
|
|
37
|
+
const tooltip = 'Tooltip';
|
|
38
|
+
|
|
39
|
+
export const WHATSAPP_CATEGORIES = {
|
|
40
|
+
alertUpdate: 'ALERT_UPDATE',
|
|
41
|
+
accountUpdate: 'ACCOUNT_UPDATE',
|
|
42
|
+
appointmentUpdate: 'APPOINTMENT_UPDATE',
|
|
43
|
+
paymentUpdate: 'PAYMENT_UPDATE',
|
|
44
|
+
reservationUpdate: 'RESERVATION_UPDATE',
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export const CATEGORY_OPTIONS = [
|
|
48
|
+
{
|
|
49
|
+
key: 'alertUpdate',
|
|
50
|
+
value: WHATSAPP_CATEGORIES.alertUpdate,
|
|
51
|
+
label: <FormattedMessage {...messages.alertUpdate} />,
|
|
52
|
+
tooltipLabel: <FormattedMessage {...messages[`alertUpdate${tooltip}`]} />,
|
|
53
|
+
tagColor: CAP_PURPLE03,
|
|
54
|
+
tagTextColor: CAP_PURPLE02,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
key: 'accountUpdate',
|
|
58
|
+
label: <FormattedMessage {...messages.accountUpdate} />,
|
|
59
|
+
tooltipLabel: <FormattedMessage {...messages[`accountUpdate${tooltip}`]} />,
|
|
60
|
+
value: WHATSAPP_CATEGORIES.accountUpdate,
|
|
61
|
+
tagColor: CAP_ORANGE01,
|
|
62
|
+
tagTextColor: CAP_ORANGE,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
key: 'appointmentUpdate',
|
|
66
|
+
value: WHATSAPP_CATEGORIES.appointmentUpdate,
|
|
67
|
+
label: <FormattedMessage {...messages.appointmentUpdate} />,
|
|
68
|
+
tooltipLabel: (
|
|
69
|
+
<FormattedMessage {...messages[`appointmentUpdate${tooltip}`]} />
|
|
70
|
+
),
|
|
71
|
+
tagColor: CAP_GREEN02,
|
|
72
|
+
tagTextColor: CAP_GREEN01,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
key: 'paymentUpdate',
|
|
76
|
+
value: WHATSAPP_CATEGORIES.paymentUpdate,
|
|
77
|
+
label: <FormattedMessage {...messages.paymentUpdate} />,
|
|
78
|
+
tooltipLabel: <FormattedMessage {...messages[`paymentUpdate${tooltip}`]} />,
|
|
79
|
+
tagColor: CAP_ORANGE01,
|
|
80
|
+
tagTextColor: CAP_ORANGE,
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
key: 'reservationUpdate',
|
|
84
|
+
value: WHATSAPP_CATEGORIES.reservationUpdate,
|
|
85
|
+
label: <FormattedMessage {...messages.reservationUpdate} />,
|
|
86
|
+
tooltipLabel: (
|
|
87
|
+
<FormattedMessage {...messages[`reservationUpdate${tooltip}`]} />
|
|
88
|
+
),
|
|
89
|
+
tagColor: CAP_ORANGE01,
|
|
90
|
+
tagTextColor: CAP_ORANGE,
|
|
91
|
+
},
|
|
92
|
+
];
|
|
93
|
+
|
|
94
|
+
export const WHATSAPP_STATUSES = {
|
|
95
|
+
awaitingApproval: 'awaitingApproval',
|
|
96
|
+
approved: 'approved',
|
|
97
|
+
rejected: 'rejected',
|
|
98
|
+
pending: 'pending',
|
|
99
|
+
unsubmitted: 'unsubmitted',
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
export const STATUS_OPTIONS = [
|
|
103
|
+
{
|
|
104
|
+
key: 'awaitingApproval',
|
|
105
|
+
value: WHATSAPP_STATUSES.awaitingApproval,
|
|
106
|
+
label: <FormattedMessage {...messages.awaitingApproval} />,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
key: 'approved',
|
|
110
|
+
value: WHATSAPP_STATUSES.approved,
|
|
111
|
+
label: <FormattedMessage {...messages.approved} />,
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
key: 'rejected',
|
|
115
|
+
value: WHATSAPP_STATUSES.rejected,
|
|
116
|
+
label: <FormattedMessage {...messages.rejected} />,
|
|
117
|
+
},
|
|
118
|
+
];
|
|
119
|
+
|
|
120
|
+
export const TAG = 'TAG';
|
|
121
|
+
export const EMBEDDED = 'embedded';
|
|
122
|
+
export const DEFAULT = 'default';
|
|
123
|
+
export const FULL = 'full';
|
|
124
|
+
export const ALL = 'all';
|
|
125
|
+
export const LIBRARY = 'library';
|