@capillarytech/creatives-library 7.6.12 → 7.6.13
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/app.js +5 -0
- package/index.html +2 -2
- package/package.json +2 -2
- package/services/api.js +2 -0
- package/utils/gtmTrackers/gtmEvents/creativeDetails.js +41 -0
- package/utils/gtmTrackers/index.js +17 -0
- package/v2Components/TemplatePreview/assets/images/mobile.svg +24 -0
- package/v2Containers/App/constants.js +11 -0
- package/v2Containers/Cap/index.js +23 -29
- package/v2Containers/Email/index.js +14 -3
- package/v2Containers/EmailWrapper/index.js +10 -3
- package/v2Containers/Line/Container/index.js +32 -4
- package/v2Containers/Line/Create/_lineCreate.scss +64 -0
- package/v2Containers/Line/Create/actions.js +94 -0
- package/v2Containers/Line/Create/constants.js +43 -0
- package/v2Containers/Line/Create/index.js +1132 -0
- package/v2Containers/Line/Create/initialSchema.js +378 -0
- package/v2Containers/Line/Create/messages.js +229 -0
- package/v2Containers/Line/Create/reducer.js +99 -0
- package/v2Containers/Line/Create/sagas.js +113 -0
- package/v2Containers/Line/Create/selectors.js +30 -0
- package/v2Containers/Line/CreateWrapper/constants.js +2 -0
- package/v2Containers/Line/CreateWrapper/index.js +117 -0
- package/v2Containers/Line/CreateWrapper/messages.js +55 -0
- package/v2Containers/Line/Edit/_lineEdit.scss +23 -0
- package/v2Containers/Line/Edit/actions.js +79 -0
- package/v2Containers/Line/Edit/constants.js +27 -0
- package/v2Containers/Line/Edit/index.js +1051 -0
- package/v2Containers/Line/Edit/messages.js +173 -0
- package/v2Containers/Line/Edit/reducer.js +83 -0
- package/v2Containers/Line/Edit/sagas.js +81 -0
- package/v2Containers/Line/Edit/selectors.js +29 -0
- package/v2Containers/Line/Edit/tests/actions.test.js +18 -0
- package/v2Containers/Line/Edit/tests/index.test.js +10 -0
- package/v2Containers/Line/Edit/tests/reducer.test.js +9 -0
- package/v2Containers/Line/Edit/tests/sagas.test.js +15 -0
- package/v2Containers/Line/Edit/tests/selectors.test.js +10 -0
- package/v2Containers/MobilePush/Create/index.js +25 -4
- package/v2Containers/MobilePush/Edit/index.js +27 -5
- package/v2Containers/MobilePush/Edit/sagas.js +1 -1
- package/v2Containers/MobilePush/commonMethods.js +19 -1
- package/v2Containers/Sms/Create/index.js +14 -2
- package/v2Containers/Sms/Edit/index.js +15 -2
- package/v2Containers/Templates/index.js +7 -4
- package/v2Containers/Viber/index.js +19 -3
- package/v2Containers/WeChat/MapTemplates/index.js +12 -3
- package/v2Containers/WeChat/RichmediaTemplates/Create/index.js +11 -2
|
@@ -19,6 +19,8 @@ export const TRACK_CREATE_MPUSH = 'createMpush';
|
|
|
19
19
|
export const TRACK_CREATE_WECHAT = 'createWeChat';
|
|
20
20
|
export const TRACK_CREATE_IMAGE = 'createImage';
|
|
21
21
|
export const TRACK_CREATE_LINE = 'createLine';
|
|
22
|
+
export const TRACK_CREATE_VIBER = 'createViber';
|
|
23
|
+
export const TRACK_CREATE_FACEBOOK = 'createFacebook';
|
|
22
24
|
|
|
23
25
|
export const CREATE = 'create';
|
|
24
26
|
export const EDIT = 'edit';
|
|
@@ -33,6 +35,8 @@ export const TRACK_EDIT_MPUSH = 'editMpush';
|
|
|
33
35
|
export const TRACK_EDIT_WECHAT = 'editWeChat';
|
|
34
36
|
export const TRACK_EDIT_IMAGE = 'editImage';
|
|
35
37
|
export const TRACK_EDIT_LINE = 'editLine';
|
|
38
|
+
export const TRACK_EDIT_VIBER = 'editViber';
|
|
39
|
+
export const TRACK_EDIT_FACEBOOK = 'editFacebook';
|
|
36
40
|
|
|
37
41
|
export const CHANNEL_CREATE_TRACK_MAPPING = {
|
|
38
42
|
sms: TRACK_CREATE_SMS,
|
|
@@ -41,6 +45,8 @@ export const CHANNEL_CREATE_TRACK_MAPPING = {
|
|
|
41
45
|
wechat: TRACK_CREATE_WECHAT,
|
|
42
46
|
gallery: TRACK_CREATE_IMAGE,
|
|
43
47
|
line: TRACK_CREATE_LINE,
|
|
48
|
+
viber: TRACK_CREATE_VIBER,
|
|
49
|
+
facebook: TRACK_CREATE_FACEBOOK
|
|
44
50
|
};
|
|
45
51
|
|
|
46
52
|
export const CHANNEL_EDIT_TRACK_MAPPING = {
|
|
@@ -50,6 +56,8 @@ export const CHANNEL_EDIT_TRACK_MAPPING = {
|
|
|
50
56
|
wechat: TRACK_EDIT_WECHAT,
|
|
51
57
|
gallery: TRACK_EDIT_IMAGE,
|
|
52
58
|
line: TRACK_EDIT_LINE,
|
|
59
|
+
viber: TRACK_EDIT_VIBER,
|
|
60
|
+
facebook: TRACK_EDIT_FACEBOOK
|
|
53
61
|
};
|
|
54
62
|
export const GTM_TRACKING_ID = 'UA-110024621-2';
|
|
55
63
|
export const BEE_PLUGIN = 'BEE_PLUGIN';
|
|
@@ -75,3 +83,6 @@ export const FB_AD_CALL_TO_ACTION = {
|
|
|
75
83
|
SUBSCRIBE,
|
|
76
84
|
WATCH_MORE,
|
|
77
85
|
};
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
export const CREATIVES = 'creatives';
|
|
@@ -77,13 +77,11 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
77
77
|
if (!userData.accessiblePermissions.includes(CREATIVES_UI_VIEW)) {
|
|
78
78
|
this.setState({ isCreativesAccessible: false });
|
|
79
79
|
}
|
|
80
|
-
this.
|
|
80
|
+
const userGtmData = this.getUserGtmData();
|
|
81
|
+
this.setDimensionData(userGtmData);
|
|
82
|
+
gtm.push({...userGtmData, event: 'userAuthenticated'});
|
|
81
83
|
});
|
|
82
84
|
this.props.actions.getTopbarMenuData();
|
|
83
|
-
if (this.props.Global.user) {
|
|
84
|
-
const userGtmData = this.getUserGtmData();
|
|
85
|
-
gtm.push(userGtmData);
|
|
86
|
-
}
|
|
87
85
|
if (this.props.Global.orgID !== undefined) {
|
|
88
86
|
gtm.push({orgId: this.props.Global.orgID});
|
|
89
87
|
}
|
|
@@ -133,18 +131,6 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
133
131
|
if (nextPropsUser && user && nextProps.Global.isLoggedIn && nextProps.Global.isLoggedIn !== this.props.Global.isLoggedIn) {
|
|
134
132
|
this.props.appActions.getSidebar();
|
|
135
133
|
}
|
|
136
|
-
|
|
137
|
-
if (nextProps.Global.user && this.props.Global.user && (nextProps.Global.user.refID !== this.props.Global.user.refID)) {
|
|
138
|
-
const userGtmData = this.getUserGtmData(nextProps);
|
|
139
|
-
gtm.push(userGtmData);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (nextProps.Global.isLoggedIn && nextProps.Global.isLoggedIn !== this.props.Global.isLoggedIn) {
|
|
143
|
-
if (nextProps.Global.orgID !== undefined && !_.isEqual(nextProps.Global.orgID, this.props.Global.orgID)) {
|
|
144
|
-
const userGtmData = this.getUserGtmData(nextProps);
|
|
145
|
-
gtm.push(userGtmData);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
134
|
}
|
|
149
135
|
|
|
150
136
|
componentDidUpdate(prevProps) {
|
|
@@ -182,26 +168,34 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
182
168
|
logNewTab();
|
|
183
169
|
}
|
|
184
170
|
|
|
185
|
-
setDimensionData() {
|
|
186
|
-
const userGtmData = this.getUserGtmData();
|
|
171
|
+
setDimensionData(userGtmData) {
|
|
187
172
|
Object.values(userGtmData).forEach((value, index) => {
|
|
188
173
|
GA.setCustomDimension({ [`dimension${index + 1}`]: value });
|
|
189
174
|
});
|
|
190
175
|
}
|
|
191
176
|
getUserGtmData(props) {
|
|
192
177
|
const selectedProps = props || this.props;
|
|
193
|
-
const { user: userData
|
|
178
|
+
const { user: userData, orgID} = selectedProps?.Global || {};
|
|
194
179
|
if (userData) {
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
|
|
180
|
+
const {
|
|
181
|
+
attributes: {
|
|
182
|
+
USERNAME : userName,
|
|
183
|
+
EMAIL : userEmail
|
|
184
|
+
} = {},
|
|
185
|
+
proxyOrgList,
|
|
186
|
+
isCapUser,
|
|
187
|
+
refID
|
|
188
|
+
} = userData;
|
|
189
|
+
const {
|
|
190
|
+
orgName
|
|
191
|
+
} = _.find(proxyOrgList, {orgID});
|
|
198
192
|
const gtmData = {
|
|
199
|
-
isCapUser:
|
|
200
|
-
orgId:
|
|
201
|
-
orgName
|
|
202
|
-
userId:
|
|
203
|
-
userName: userName
|
|
204
|
-
userEmail: userEmail
|
|
193
|
+
isCapUser: isCapUser,
|
|
194
|
+
orgId: orgID,
|
|
195
|
+
orgName,
|
|
196
|
+
userId: refID,
|
|
197
|
+
userName: userName?.value,
|
|
198
|
+
userEmail: userEmail?.value,
|
|
205
199
|
};
|
|
206
200
|
return gtmData;
|
|
207
201
|
}
|
|
@@ -31,8 +31,9 @@ import * as creativesContainerActions from '../CreativesContainer/actions';
|
|
|
31
31
|
import withCreatives from '../../hoc/withCreatives';
|
|
32
32
|
import { EMAIL } from '../CreativesContainer/constants';
|
|
33
33
|
import { GA } from '@capillarytech/cap-ui-utils';
|
|
34
|
-
import { TRACK_CREATE_EMAIL, TRACK_EDIT_EMAIL, BEE_PLUGIN } from '../App/constants';
|
|
34
|
+
import { TRACK_CREATE_EMAIL, TRACK_EDIT_EMAIL, BEE_PLUGIN, CREATE, EDIT } from '../App/constants';
|
|
35
35
|
import { FONT_COLOR_05 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
36
|
+
import { gtmPush } from '../../utils/gtmTrackers';
|
|
36
37
|
const {CapCustomCardList} = CapCustomCard;
|
|
37
38
|
export class Email extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
38
39
|
constructor(props) {
|
|
@@ -656,8 +657,9 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
656
657
|
});
|
|
657
658
|
}
|
|
658
659
|
onUpdateTemplateComplete = (createResponse) => {
|
|
659
|
-
const {isEdit, formData = {} } = this.state || {};
|
|
660
|
+
const {isEdit, formData = {} } = _.cloneDeep(this.state) || {};
|
|
660
661
|
const base = formData.base || {};
|
|
662
|
+
const { activeTab } = base;
|
|
661
663
|
const isDragDrop = _.get(base[base.activeTab], 'is_drag_drop');
|
|
662
664
|
let editorType = '';
|
|
663
665
|
if ( isDragDrop === true && this.checkBeeEditorAllowedForLibrary()) {
|
|
@@ -665,12 +667,21 @@ export class Email extends React.Component { // eslint-disable-line react/prefer
|
|
|
665
667
|
} else if (isDragDrop === false && !this.checkBeeEditorAllowedForLibrary()) {
|
|
666
668
|
editorType = 'ckEditor';
|
|
667
669
|
}
|
|
668
|
-
GA.timeTracker.stopTimer(isEdit ? TRACK_EDIT_EMAIL : TRACK_CREATE_EMAIL, {
|
|
670
|
+
const timeTaken = GA.timeTracker.stopTimer(isEdit ? TRACK_EDIT_EMAIL : TRACK_CREATE_EMAIL, {
|
|
669
671
|
category: 'Creatives',
|
|
670
672
|
action: isEdit ? TRACK_EDIT_EMAIL : TRACK_CREATE_EMAIL,
|
|
671
673
|
label: `using ${editorType}`,
|
|
672
674
|
});
|
|
673
675
|
if (createResponse && createResponse.templateId) {
|
|
676
|
+
gtmPush('creativeDetails', {
|
|
677
|
+
id: createResponse.templateId._id || createResponse.templateId,
|
|
678
|
+
name: formData['template-name'],
|
|
679
|
+
channel: EMAIL,
|
|
680
|
+
timeTaken,
|
|
681
|
+
content: base?.[activeTab]?.['template-content'],
|
|
682
|
+
mode: isEdit ? EDIT : CREATE
|
|
683
|
+
});
|
|
684
|
+
|
|
674
685
|
// this.resetSchema();
|
|
675
686
|
let message;
|
|
676
687
|
if (isEdit) {
|
|
@@ -27,6 +27,8 @@ import Email from '../Email';
|
|
|
27
27
|
import CmsTemplatesComponent from '../../v2Components/CmsTemplatesComponent';
|
|
28
28
|
import messages from './messages';
|
|
29
29
|
import { CHANNEL_CREATE_TRACK_MAPPING } from '../App/constants';
|
|
30
|
+
import { gtmPush } from '../../utils/gtmTrackers';
|
|
31
|
+
import { EMAIL } from '../CreativesContainer/constants';
|
|
30
32
|
|
|
31
33
|
const CapRadioCardWithLabel = ComponentWithLabelHOC(CapRadioCard);
|
|
32
34
|
const { timeTracker } = GA;
|
|
@@ -116,13 +118,18 @@ export class EmailWrapper extends React.Component { // eslint-disable-line react
|
|
|
116
118
|
};
|
|
117
119
|
CapNotification.error(message);
|
|
118
120
|
}
|
|
119
|
-
stopTimerGA=() => {
|
|
121
|
+
stopTimerGA = () => {
|
|
120
122
|
// stop timer
|
|
121
|
-
timeTracker.stopTimer(CHANNEL_CREATE_TRACK_MAPPING.email, {
|
|
123
|
+
const timeTaken = timeTracker.stopTimer(CHANNEL_CREATE_TRACK_MAPPING.email, {
|
|
122
124
|
category: 'Creatives',
|
|
123
125
|
action: 'Create',
|
|
124
126
|
label: 'uploadZip',
|
|
125
127
|
});
|
|
128
|
+
gtmPush('creativeDetails', {
|
|
129
|
+
channel: EMAIL,
|
|
130
|
+
timeTaken,
|
|
131
|
+
mode: 'uploadZip'
|
|
132
|
+
});
|
|
126
133
|
}
|
|
127
134
|
handleFileUpload = (file = {}) => {
|
|
128
135
|
const { templatesActions, intl, showNextStep, isUploading } = this.props;
|
|
@@ -133,8 +140,8 @@ export class EmailWrapper extends React.Component { // eslint-disable-line react
|
|
|
133
140
|
|
|
134
141
|
if (supportedZipFormats.indexOf(fileExtension.toLowerCase()) !== -1) {
|
|
135
142
|
templatesActions.handleZipUpload(file.originFileObj, () => { //handle upload success
|
|
143
|
+
this.stopTimerGA();
|
|
136
144
|
this.setState({ modeContent: { file } }, showNextStep);
|
|
137
|
-
stopTimerGA();
|
|
138
145
|
}, this.handleZipUploadError);
|
|
139
146
|
} else if (fileExtension === 'html' || fileExtension === 'htm') {
|
|
140
147
|
const reader = new FileReader();
|
|
@@ -18,11 +18,11 @@ import CapIcon from '@capillarytech/cap-ui-library/CapIcon';
|
|
|
18
18
|
import CapHeader from '@capillarytech/cap-ui-library/CapHeader';
|
|
19
19
|
// GA
|
|
20
20
|
import { GA } from '@capillarytech/cap-ui-utils';
|
|
21
|
-
import { TRACK_CREATE_LINE, TRACK_EDIT_LINE } from '../../App/constants';
|
|
21
|
+
import { CREATE, EDIT, TRACK_CREATE_LINE, TRACK_EDIT_LINE } from '../../App/constants';
|
|
22
22
|
|
|
23
23
|
import LineWrapper from './Wrapper';
|
|
24
24
|
import messages from './messages';
|
|
25
|
-
import { TEXT, IMAGE, IMAGE_MAP, IMAGE_CAROUSEL, MAX_LINE_WRAPPER_LIMIT, MAX_LINE_WRAPPER_LIMIT_FULL_MODE, DEFAULT_VIDEO_URI } from './constants';
|
|
25
|
+
import { TEXT, IMAGE, IMAGE_MAP, IMAGE_CAROUSEL, MAX_LINE_WRAPPER_LIMIT, MAX_LINE_WRAPPER_LIMIT_FULL_MODE, DEFAULT_VIDEO_URI, VIDEO, TEMPLATE } from './constants';
|
|
26
26
|
import { FONT_COLOR_05 } from '@capillarytech/cap-ui-library/styled/variables';
|
|
27
27
|
|
|
28
28
|
import { makeSelectMetaEntities, setInjectedTags } from '../../Cap/selectors';
|
|
@@ -32,6 +32,8 @@ import {makeSelectCreateLine, makeSelectLine } from './selectors';
|
|
|
32
32
|
import * as compActions from './actions';
|
|
33
33
|
import * as templateActionsConfig from '../../Templates/actions';
|
|
34
34
|
import withCreatives from '../../../hoc/withCreatives';
|
|
35
|
+
import { gtmPush } from '../../../utils/gtmTrackers';
|
|
36
|
+
import { LINE } from '../../CreativesContainer/constants';
|
|
35
37
|
|
|
36
38
|
const { stopTimer } = GA.timeTracker;
|
|
37
39
|
|
|
@@ -348,6 +350,19 @@ export const LineContainer = ({
|
|
|
348
350
|
}
|
|
349
351
|
}
|
|
350
352
|
|
|
353
|
+
const formatFSPayload = (lineWrapperContents) => {
|
|
354
|
+
const [ {
|
|
355
|
+
messageTitle,
|
|
356
|
+
messageContent: content,
|
|
357
|
+
type,
|
|
358
|
+
} = {}] = lineWrapperContents;
|
|
359
|
+
return {
|
|
360
|
+
name: messageTitle,
|
|
361
|
+
content,
|
|
362
|
+
imageAdded: [IMAGE, IMAGE_MAP, IMAGE_CAROUSEL, TEMPLATE].includes(type),
|
|
363
|
+
videoAdded: type === VIDEO
|
|
364
|
+
}
|
|
365
|
+
}
|
|
351
366
|
const formatSubmitPayload = (lineWrapperContents) => {
|
|
352
367
|
const [ {
|
|
353
368
|
messageTitle,
|
|
@@ -561,11 +576,17 @@ export const LineContainer = ({
|
|
|
561
576
|
createCallback(errorMessage);
|
|
562
577
|
if (!errorMessage) {
|
|
563
578
|
// stop timer for create line
|
|
564
|
-
stopTimer(TRACK_CREATE_LINE, {
|
|
579
|
+
const timeTaken = stopTimer(TRACK_CREATE_LINE, {
|
|
565
580
|
category: 'Creatives',
|
|
566
581
|
action: TRACK_CREATE_LINE,
|
|
567
582
|
label: getLineType(lineWrapperContents),
|
|
568
583
|
});
|
|
584
|
+
gtmPush('creativeDetails', Object.assign({
|
|
585
|
+
id: resp.templateId,
|
|
586
|
+
channel: LINE,
|
|
587
|
+
mode: CREATE,
|
|
588
|
+
timeTaken,
|
|
589
|
+
}, formatFSPayload(lineWrapperContents)));
|
|
569
590
|
onCreateComplete();
|
|
570
591
|
}
|
|
571
592
|
}
|
|
@@ -604,11 +625,18 @@ export const LineContainer = ({
|
|
|
604
625
|
editCallback(errorMessage);
|
|
605
626
|
if (!errorMessage) {
|
|
606
627
|
// stop timer for edit line
|
|
607
|
-
stopTimer(TRACK_EDIT_LINE, {
|
|
628
|
+
const timeTaken = stopTimer(TRACK_EDIT_LINE, {
|
|
608
629
|
category: 'Creatives',
|
|
609
630
|
action: TRACK_EDIT_LINE,
|
|
610
631
|
label: getLineType(lineWrapperContents),
|
|
611
632
|
});
|
|
633
|
+
gtmPush('creativeDetails', Object.assign({
|
|
634
|
+
id: resp.templateId._id,
|
|
635
|
+
channel: LINE,
|
|
636
|
+
mode: EDIT,
|
|
637
|
+
timeTaken,
|
|
638
|
+
}, formatFSPayload(lineWrapperContents)));
|
|
639
|
+
|
|
612
640
|
onCreateComplete();
|
|
613
641
|
}
|
|
614
642
|
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
2
|
+
|
|
3
|
+
.line-row{
|
|
4
|
+
margin-bottom: 16px;
|
|
5
|
+
}
|
|
6
|
+
.slidebox-content-container {
|
|
7
|
+
overflow-x: hidden;
|
|
8
|
+
}
|
|
9
|
+
.line-image {
|
|
10
|
+
position: relative;
|
|
11
|
+
}
|
|
12
|
+
.image-container {
|
|
13
|
+
display: flex;
|
|
14
|
+
& > div {
|
|
15
|
+
min-width: 516px;
|
|
16
|
+
}
|
|
17
|
+
border-radius: 5px;
|
|
18
|
+
.image-placeholder{
|
|
19
|
+
line-height: 150px;
|
|
20
|
+
}
|
|
21
|
+
img {
|
|
22
|
+
object-fit: cover;
|
|
23
|
+
max-width: 100%;
|
|
24
|
+
max-height: 100%;
|
|
25
|
+
height: auto !important;
|
|
26
|
+
width: auto !important;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.pagination-container.gallery-upload {
|
|
31
|
+
height: calc(100vh - 60px);
|
|
32
|
+
|
|
33
|
+
.cap-custom-card-list-col {
|
|
34
|
+
max-width: 156px;
|
|
35
|
+
max-height: 156px;
|
|
36
|
+
display: inline-block;
|
|
37
|
+
margin-left: $CAP_SPACE_04;
|
|
38
|
+
margin-right: $CAP_SPACE_04;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ant-card-body {
|
|
42
|
+
padding-top: 0;
|
|
43
|
+
|
|
44
|
+
.ant-card-meta-description img {
|
|
45
|
+
height: 80px;
|
|
46
|
+
width: auto;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.gallery-image {
|
|
52
|
+
height: 156px;
|
|
53
|
+
width: 156px;
|
|
54
|
+
border-radius: 4px;
|
|
55
|
+
margin: 3px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.sms-text {
|
|
59
|
+
img {
|
|
60
|
+
display: block;
|
|
61
|
+
max-width: 100%;
|
|
62
|
+
object-fit: cover;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*
|
|
3
|
+
* Create actions
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as types from './constants';
|
|
8
|
+
|
|
9
|
+
export function createTemplate(template, callback) {
|
|
10
|
+
console.log('action trigereed createtemplate');
|
|
11
|
+
return {
|
|
12
|
+
type: types.CREATE_TEMPLATE_REQUEST,
|
|
13
|
+
template,
|
|
14
|
+
callback,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function clearCreateResponse() {
|
|
19
|
+
console.log('clearCreateResponse');
|
|
20
|
+
return {
|
|
21
|
+
type: types.CLEAR_CREATE_RESPONSE_REQUEST,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function defaultAction() {
|
|
26
|
+
return {
|
|
27
|
+
type: types.DEFAULT_ACTION,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function uploadAsset(file, assetType, fileParams) {
|
|
32
|
+
return {
|
|
33
|
+
type: types.UPLOAD_ASSET_REQUEST,
|
|
34
|
+
file,
|
|
35
|
+
assetType,
|
|
36
|
+
fileParams,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export function clearAsset() {
|
|
41
|
+
return {
|
|
42
|
+
type: types.CLEAR_ASSET,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
// FOR EDIT
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
export function editTemplate(template, callback) {
|
|
51
|
+
console.log('action trigereed editTemplate line @@@');
|
|
52
|
+
return {
|
|
53
|
+
type: types.EDIT_TEMPLATE_REQUEST,
|
|
54
|
+
template,
|
|
55
|
+
callback,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function getTemplateDetails(id) {
|
|
60
|
+
console.log('getting template line @@@', id);
|
|
61
|
+
return {
|
|
62
|
+
type: types.GET_TEMPLATE_DETAILS_REQUEST,
|
|
63
|
+
id,
|
|
64
|
+
channel: 'LINE',
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export function clearEditResponse() {
|
|
69
|
+
console.log('clearEditResponse');
|
|
70
|
+
return {
|
|
71
|
+
type: types.CLEAR_EDIT_RESPONSE_REQUEST,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function clearData() {
|
|
76
|
+
return {
|
|
77
|
+
type: types.CLEAR_DATA,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function getLineTemplatesList(channel, queryParams) {
|
|
82
|
+
return {
|
|
83
|
+
type: types.GET_LINE_TEMPLATES_LIST_REQUEST,
|
|
84
|
+
channel,
|
|
85
|
+
queryParams,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function setSelectedTemplate(templateData) {
|
|
90
|
+
return {
|
|
91
|
+
type: types.SET_SELECTED_TEMPLATE,
|
|
92
|
+
data: templateData,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/*
|
|
2
|
+
*
|
|
3
|
+
* Create constants
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export const DEFAULT_ACTION = 'app/Create/DEFAULT_ACTION';
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
export const CREATE_TEMPLATE_REQUEST = 'app/v2Containers/Line/Create/CREATE_TEMPLATE_REQUEST';
|
|
11
|
+
export const CREATE_TEMPLATE_SUCCESS = 'app/v2Containers/Line/Create/CREATE_TEMPLATE_SUCCESS';
|
|
12
|
+
export const CREATE_TEMPLATE_FAILURE = 'app/v2Containers/Line/Create/CREATE_TEMPLATE_FAILURE';
|
|
13
|
+
export const UPLOAD_ASSET_REQUEST = 'app/v2Containers/Line/Create/UPLOAD_ASSET_REQUEST';
|
|
14
|
+
export const UPLOAD_ASSET_SUCCESS = 'app/v2Containers/Line/Create/UPLOAD_ASSET_SUCCESS';
|
|
15
|
+
export const UPLOAD_ASSET_FAILURE = 'app/v2Containers/Line/Create/UPLOAD_ASSET_FAILURE';
|
|
16
|
+
export const CLEAR_ASSET = 'app/v2Containers/Line/Create/CLEAR_ASSET';
|
|
17
|
+
|
|
18
|
+
export const CLEAR_CREATE_RESPONSE_REQUEST = 'app/v2Containers/Line/Create/CLEAR_CREATE_RESPONSE_REQUEST';
|
|
19
|
+
export const CLEAR_CREATE_RESPONSE_SUCCESS = 'app/v2Containers/Line/Create/CLEAR_CREATE_RESPONSE_SUCCESS';
|
|
20
|
+
export const CLEAR_CREATE_RESPONSE_FAILURE = 'app/v2Containers/Line/Create/CLEAR_CREATE_RESPONSE_FAILURE';
|
|
21
|
+
|
|
22
|
+
export const LINE_IMG_HEIGHT = 400;
|
|
23
|
+
export const LINE_IMG_WIDTH = 300;
|
|
24
|
+
export const LINE_IMG_SIZE = 30000000;
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
// edit
|
|
28
|
+
|
|
29
|
+
export const GET_TEMPLATE_DETAILS_REQUEST = 'app/v2Containers/line/Edit/GET_TEMPLATE_DETAILS_REQUEST';
|
|
30
|
+
export const GET_TEMPLATE_DETAILS_SUCCESS = 'app/v2Containers/line/Edit/GET_TEMPLATE_DETAILS_SUCCESS';
|
|
31
|
+
export const GET_TEMPLATE_DETAILS_FAILURE = 'app/v2Containers/line/Edit/GET_TEMPLATE_DETAILS_FAILURE';
|
|
32
|
+
|
|
33
|
+
export const EDIT_TEMPLATE_REQUEST = 'app/v2Containers/line/Edit/EDIT_TEMPLATE_REQUEST';
|
|
34
|
+
export const EDIT_TEMPLATE_SUCCESS = 'app/v2Containers/line/Edit/EDIT_TEMPLATE_SUCCESS';
|
|
35
|
+
export const EDIT_TEMPLATE_FAILURE = 'app/v2Containers/line/Edit/EDIT_TEMPLATE_FAILURE';
|
|
36
|
+
|
|
37
|
+
export const CLEAR_EDIT_RESPONSE_REQUEST = 'app/v2Containers/line/Edit/CLEAR_EDIT_RESPONSE_REQUEST';
|
|
38
|
+
export const CLEAR_DATA = 'app/v2Containers/Line/Edit/CLEAR_DATA';
|
|
39
|
+
export const SET_SELECTED_TEMPLATE = 'app/v2Containers/Line/Edit/SET_SELECTED_TEMPLATE';
|
|
40
|
+
|
|
41
|
+
export const GET_LINE_TEMPLATES_LIST_REQUEST = 'app/v2Containers/Line/GET_LINE_TEMPLATES_LIST_REQUEST';
|
|
42
|
+
export const GET_LINE_TEMPLATES_LIST_SUCCESS = 'app/v2Containers/Line/GET_LINE_TEMPLATES_LIST_SUCCESS';
|
|
43
|
+
export const GET_LINE_TEMPLATES_LIST_FAILURE = 'app/v2Containers/Line/GET_LINE_TEMPLATES_LIST_FAILURE';
|