@capillarytech/creatives-library 6.11.8 → 6.12.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.
- package/components/TemplatePreview/index.js +2 -1
- package/containers/Cap/actions.js +2 -1
- package/containers/Cap/index.js +12 -5
- package/containers/Cap/sagas.js +4 -1
- package/global-styles.js +4 -0
- package/package.json +1 -1
- package/v2Components/AccessForbidden/index.js +20 -0
- package/v2Components/AccessForbidden/messages.js +14 -0
- package/v2Components/NavigationBar/messages.js +13 -13
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/_wechatRichmediaTemplatePrev.scss +151 -151
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/messages.js +33 -33
- package/v2Components/TemplatePreview/WechatRichmediaTemplatePreview/tests/index.test.js +10 -10
- package/v2Components/TemplatePreview/assets/images/androidPushMessage.svg +44 -44
- package/v2Components/TemplatePreview/assets/images/home-screen-android.svg +21 -21
- package/v2Components/TemplatePreview/assets/images/home-screen-ios.svg +16 -16
- package/v2Components/TemplatePreview/assets/images/iPhonePushMessage.svg +134 -134
- package/v2Components/TemplatePreview/assets/images/mobile.svg +23 -23
- package/v2Components/TemplatePreview/assets/images/sms_mobile_android.svg +22 -22
- package/v2Components/TemplatePreview/assets/images/user-icon.svg +18 -18
- package/v2Components/TemplatePreview/assets/images/wechat-home-screen-android.svg +21 -21
- package/v2Components/TemplatePreview/assets/images/wechat-mobile.svg +77 -77
- package/v2Components/TemplatePreview/assets/images/wechat_mobile_android.svg +20 -20
- package/v2Components/TemplatePreview/index.js +2 -1
- package/v2Components/TemplatePreview/tests/index.test.js +10 -10
- package/v2Containers/App/constants.js +2 -0
- package/v2Containers/Cap/index.js +8 -2
- package/v2Containers/CreativesContainer/actions.js +27 -27
- package/v2Containers/CreativesContainer/constants.js +17 -17
- package/v2Containers/CreativesContainer/index.scss +44 -44
- package/v2Containers/CreativesContainer/messages.js +305 -305
- package/v2Containers/CreativesContainer/reducer.js +29 -29
- package/v2Containers/CreativesContainer/sagas.js +11 -11
- package/v2Containers/CreativesContainer/selectors.js +30 -30
- package/v2Containers/CreativesContainer/tests/actions.test.js +18 -18
- package/v2Containers/CreativesContainer/tests/index.test.js +10 -10
- package/v2Containers/CreativesContainer/tests/reducer.test.js +9 -9
- package/v2Containers/CreativesContainer/tests/sagas.test.js +15 -15
- package/v2Containers/CreativesContainer/tests/selectors.test.js +10 -10
- package/v2Containers/Line/Container/Video/index.js +4 -1
- package/v2Containers/Templates/tests/actions.test.js +18 -18
- package/v2Containers/Templates/tests/index.test.js +10 -10
- package/v2Containers/Templates/tests/reducer.test.js +9 -9
- package/v2Containers/Templates/tests/sagas.test.js +15 -15
- package/v2Containers/Templates/tests/selectors.test.js +10 -10
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +29 -29
- package/v2Containers/TemplatesV2/actions.js +16 -16
- package/v2Containers/TemplatesV2/constants.js +10 -10
- package/v2Containers/TemplatesV2/index.js +27 -17
- package/v2Containers/TemplatesV2/messages.js +61 -61
- package/v2Containers/TemplatesV2/selectors.js +25 -25
- package/v2Containers/TemplatesV2/tests/actions.test.js +18 -18
- package/v2Containers/TemplatesV2/tests/index.test.js +10 -10
- package/v2Containers/TemplatesV2/tests/reducer.test.js +9 -9
- package/v2Containers/TemplatesV2/tests/sagas.test.js +15 -15
- package/v2Containers/TemplatesV2/tests/selectors.test.js +10 -10
- package/v2Components/BeeEditor/index.js +0 -263
- package/v2Components/BeeEditor/index.scss +0 -11
- package/v2Components/BeeEditor/messages.js +0 -71
- package/v2Components/BeeEditor/tests/index.test.js +0 -10
|
@@ -217,6 +217,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
217
217
|
alignItems: 'center',
|
|
218
218
|
backgroundColor: !video ? 'transparent' : CAP_G06,
|
|
219
219
|
marginTop: 0,
|
|
220
|
+
padding: 0,
|
|
220
221
|
}}
|
|
221
222
|
key={video}
|
|
222
223
|
>
|
|
@@ -224,7 +225,7 @@ class TemplatePreview extends React.Component { // eslint-disable-line react/pre
|
|
|
224
225
|
video
|
|
225
226
|
? (
|
|
226
227
|
<>
|
|
227
|
-
<video
|
|
228
|
+
<video style={{ opacity: 0.5, width: '100%' }}>
|
|
228
229
|
<source src={video} type="video/mp4" />
|
|
229
230
|
</video>
|
|
230
231
|
<div
|
package/containers/Cap/index.js
CHANGED
|
@@ -22,6 +22,9 @@ import config from '../../config/app';
|
|
|
22
22
|
import Toastr from '../../components/Toastr';
|
|
23
23
|
import messages from './messages';
|
|
24
24
|
import { makeSelectLocale } from '../../v2Containers/LanguageProvider/selectors';
|
|
25
|
+
import { CREATIVES_UI_VIEW } from '../../v2Containers/App/constants';
|
|
26
|
+
import AccessForbidden from '../../v2Components/AccessForbidden';
|
|
27
|
+
|
|
25
28
|
const gtm = window.dataLayer || [];
|
|
26
29
|
|
|
27
30
|
const CapWrapper = styled.div`
|
|
@@ -39,6 +42,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
39
42
|
this.state = {
|
|
40
43
|
menuData: [],
|
|
41
44
|
switchedOrg: false,
|
|
45
|
+
isCreativesAccessible: true,
|
|
42
46
|
};
|
|
43
47
|
this.changeOrg = this.changeOrg.bind(this);
|
|
44
48
|
this.logout = this.logout.bind(this);
|
|
@@ -47,7 +51,11 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
componentWillMount() {
|
|
50
|
-
this.props.actions.getUserData()
|
|
54
|
+
this.props.actions.getUserData((userData) => {
|
|
55
|
+
if (!userData.accessiblePermissions.includes(CREATIVES_UI_VIEW)) {
|
|
56
|
+
this.setState({ isCreativesAccessible: false });
|
|
57
|
+
}
|
|
58
|
+
});
|
|
51
59
|
if (this.props.Global.user) {
|
|
52
60
|
const userGtmData = this.getUserGtmData(this.props);
|
|
53
61
|
gtm.push(userGtmData);
|
|
@@ -195,14 +203,12 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
195
203
|
const type = this.props.location.query.type;
|
|
196
204
|
// const changeOrg = this.props.actions.changeOrg;
|
|
197
205
|
// const logout = this.props.actions.logout;
|
|
198
|
-
console.log('props', this.props);
|
|
199
206
|
const proxyOrgList = [];
|
|
200
207
|
let defaultOrgName = '';
|
|
201
208
|
let defaultOrgId = '';
|
|
202
209
|
let userName = '';
|
|
203
210
|
const navigateToDashboard = this.navigateToDashboard;
|
|
204
211
|
if (userData && userData.user && userData.user !== '') {
|
|
205
|
-
console.log('Org name ', userData.user.orgName, userData.user.orgID);
|
|
206
212
|
defaultOrgName = userData.user.orgName;
|
|
207
213
|
defaultOrgId = userData.user.orgID;
|
|
208
214
|
proxyOrgList.push({ text: defaultOrgName, value: defaultOrgId });
|
|
@@ -272,6 +278,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
272
278
|
],
|
|
273
279
|
},
|
|
274
280
|
];
|
|
281
|
+
const { isCreativesAccessible } = this.state;
|
|
275
282
|
return (
|
|
276
283
|
<CapWrapper>
|
|
277
284
|
{ this.props.loader.localeLoading || this.props.Global.fetching_userdata ?
|
|
@@ -301,7 +308,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
301
308
|
logout={this.logout}
|
|
302
309
|
/> : ''}
|
|
303
310
|
<div className="main">
|
|
304
|
-
{loggedIn && type !== 'embedded' && this.props.location.pathname.indexOf('v2') === -1 ? <div id="cap-sidebar" className={'sidebar'}>
|
|
311
|
+
{isCreativesAccessible && loggedIn && type !== 'embedded' && this.props.location.pathname.indexOf('v2') === -1 ? <div id="cap-sidebar" className={'sidebar'}>
|
|
305
312
|
<Sidebar
|
|
306
313
|
menuData={menuData}
|
|
307
314
|
actionComponents={actionComponents}
|
|
@@ -309,7 +316,7 @@ export class Cap extends React.Component { // eslint-disable-line react/prefer-s
|
|
|
309
316
|
/>
|
|
310
317
|
</div> : '' }
|
|
311
318
|
<div className="main-content">
|
|
312
|
-
{React.Children.toArray(this.props.children)}
|
|
319
|
+
{!isCreativesAccessible ? <AccessForbidden /> : React.Children.toArray(this.props.children)}
|
|
313
320
|
</div>
|
|
314
321
|
</div>
|
|
315
322
|
</div>
|
package/containers/Cap/sagas.js
CHANGED
|
@@ -68,7 +68,7 @@ function* logoutFlow() {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
export function* fetchUserInfo() {
|
|
71
|
+
export function* fetchUserInfo({ callback }) {
|
|
72
72
|
try {
|
|
73
73
|
const result = yield call(Api.getUserData);
|
|
74
74
|
const userData = result.user;
|
|
@@ -87,6 +87,9 @@ export function* fetchUserInfo() {
|
|
|
87
87
|
},
|
|
88
88
|
];
|
|
89
89
|
}
|
|
90
|
+
if (callback) {
|
|
91
|
+
callback(userData);
|
|
92
|
+
}
|
|
90
93
|
yield call(LocalStorage.saveItem, 'orgID', result.currentOrgId);
|
|
91
94
|
yield call(LocalStorage.saveItem, 'user', userData);
|
|
92
95
|
yield put({type: types.GET_USER_DATA_SUCCESS, userData, currentOrgId: result.currentOrgId, currentOrgDetails});
|
package/global-styles.js
CHANGED
package/package.json
CHANGED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { CapRow, CapHeading } from '@capillarytech/cap-ui-library';
|
|
4
|
+
import messages from './messages';
|
|
5
|
+
|
|
6
|
+
const AccessForbidden = () => {
|
|
7
|
+
console.log('NIKHIL access');
|
|
8
|
+
return (
|
|
9
|
+
<CapRow className="margin-t-32 text-align-center">
|
|
10
|
+
<CapHeading type="h2">
|
|
11
|
+
<FormattedMessage {...messages.forbiddenHeader} />
|
|
12
|
+
</CapHeading>
|
|
13
|
+
<CapHeading type="h3" className="margin-t-24">
|
|
14
|
+
<FormattedMessage {...messages.forbiddenDesc} />
|
|
15
|
+
</CapHeading>
|
|
16
|
+
</CapRow>
|
|
17
|
+
);
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export default AccessForbidden;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { defineMessages } from 'react-intl';
|
|
2
|
+
|
|
3
|
+
const prefix = 'creatives.components.AccessForbidden';
|
|
4
|
+
|
|
5
|
+
export default defineMessages({
|
|
6
|
+
forbiddenHeader: {
|
|
7
|
+
id: `${prefix}.forbiddenHeader`,
|
|
8
|
+
defaultMessage: 'Access Forbidden',
|
|
9
|
+
},
|
|
10
|
+
forbiddenDesc: {
|
|
11
|
+
id: `${prefix}.forbiddenDesc`,
|
|
12
|
+
defaultMessage: 'This page access has not been provided to you.',
|
|
13
|
+
},
|
|
14
|
+
});
|
|
@@ -9,51 +9,51 @@ import { defineMessages } from 'react-intl';
|
|
|
9
9
|
export const scope = 'creatives.componentsV2.NavigationBar';
|
|
10
10
|
|
|
11
11
|
export default defineMessages({
|
|
12
|
-
header: {
|
|
12
|
+
"header": {
|
|
13
13
|
id: `${scope}.header`,
|
|
14
14
|
defaultMessage: 'This is the NavigationBar component!',
|
|
15
15
|
},
|
|
16
|
-
selectedProductDefault: {
|
|
16
|
+
"selectedProductDefault": {
|
|
17
17
|
id: `${scope}.selectedProductDefault`,
|
|
18
18
|
defaultMessage: 'Engage+',
|
|
19
19
|
},
|
|
20
|
-
insights: {
|
|
20
|
+
"insights": {
|
|
21
21
|
id: `${scope}.insights`,
|
|
22
22
|
defaultMessage: 'Insights+',
|
|
23
23
|
},
|
|
24
|
-
orgSettings: {
|
|
24
|
+
"orgSettings": {
|
|
25
25
|
id: `${scope}.orgSettings`,
|
|
26
26
|
defaultMessage: 'Organisation settings',
|
|
27
27
|
},
|
|
28
|
-
logout: {
|
|
28
|
+
"logout": {
|
|
29
29
|
id: `${scope}.logout`,
|
|
30
30
|
defaultMessage: 'Logout',
|
|
31
31
|
},
|
|
32
|
-
businessProcesses: {
|
|
32
|
+
"businessProcesses": {
|
|
33
33
|
id: `${scope}.businessProcesses`,
|
|
34
34
|
defaultMessage: 'Workbench',
|
|
35
35
|
},
|
|
36
|
-
|
|
37
|
-
id: `${scope}.
|
|
36
|
+
'campaigns/ui/list': {
|
|
37
|
+
id: `${scope}.campaigns/ui/list`,
|
|
38
38
|
defaultMessage: 'Engage+',
|
|
39
39
|
},
|
|
40
|
-
wecrm: {
|
|
40
|
+
"wecrm": {
|
|
41
41
|
id: `${scope}.wecrm`,
|
|
42
42
|
defaultMessage: 'Wecrm',
|
|
43
43
|
},
|
|
44
|
-
loyaltyProgram: {
|
|
44
|
+
"loyaltyProgram": {
|
|
45
45
|
id: `${scope}.loyaltyProgram`,
|
|
46
46
|
defaultMessage: 'Loyalty+',
|
|
47
47
|
},
|
|
48
|
-
storePerformance: {
|
|
48
|
+
"storePerformance": {
|
|
49
49
|
id: `${scope}.storePerformance`,
|
|
50
50
|
defaultMessage: 'Store Performance',
|
|
51
51
|
},
|
|
52
|
-
memberCare: {
|
|
52
|
+
"memberCare": {
|
|
53
53
|
id: `${scope}.memberCare`,
|
|
54
54
|
defaultMessage: 'Member Care',
|
|
55
55
|
},
|
|
56
|
-
storeCare: {
|
|
56
|
+
"storeCare": {
|
|
57
57
|
id: `${scope}.storeCare`,
|
|
58
58
|
defaultMessage: 'Store Care',
|
|
59
59
|
},
|
|
@@ -1,152 +1,152 @@
|
|
|
1
|
-
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
2
|
-
|
|
3
|
-
.shell-lock-screen-android .main-screen-preview .wechatMsgContainer{
|
|
4
|
-
position: absolute;
|
|
5
|
-
left: 53.5%;
|
|
6
|
-
top:28%;
|
|
7
|
-
background: white;
|
|
8
|
-
width: 19.5%;
|
|
9
|
-
text-align: left;
|
|
10
|
-
height: fit-content;
|
|
11
|
-
border-radius: 0.285rem;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.shell-lock-screen-android .lock-screen-preview{
|
|
15
|
-
.wechat-android-sender-id{
|
|
16
|
-
position: absolute;
|
|
17
|
-
top: 46%;
|
|
18
|
-
font-size: 10px;
|
|
19
|
-
left: 28%;
|
|
20
|
-
}
|
|
21
|
-
.wechat-android-title{
|
|
22
|
-
position: absolute;
|
|
23
|
-
top: 49%;
|
|
24
|
-
font-size: 10px;
|
|
25
|
-
left: 28%;
|
|
26
|
-
color: #5e6c84;
|
|
27
|
-
}
|
|
28
|
-
.wechat-android-action-buttons{
|
|
29
|
-
position: absolute;
|
|
30
|
-
left: 28%;
|
|
31
|
-
top: 53%;
|
|
32
|
-
font-size: 10px;
|
|
33
|
-
color: #3861ca;
|
|
34
|
-
font-weight: 500;
|
|
35
|
-
}
|
|
36
|
-
.wechat-ios-sender-id{
|
|
37
|
-
position: absolute;
|
|
38
|
-
top: 44%;
|
|
39
|
-
font-size: 10px;
|
|
40
|
-
left: 28.5%;
|
|
41
|
-
}
|
|
42
|
-
.wechat-ios-title{
|
|
43
|
-
position: absolute;
|
|
44
|
-
top: 47%;
|
|
45
|
-
font-size: 10px;
|
|
46
|
-
left: 28.5%;
|
|
47
|
-
color: #5e6c84;
|
|
48
|
-
}
|
|
49
|
-
.wechat-ios-action-reply{
|
|
50
|
-
position: absolute;
|
|
51
|
-
left: 35%;
|
|
52
|
-
top: 59%;
|
|
53
|
-
font-size: 12px;
|
|
54
|
-
color: #3861ca;
|
|
55
|
-
font-weight: 500;
|
|
56
|
-
}
|
|
57
|
-
.wechat-ios-action-cancel{
|
|
58
|
-
position: absolute;
|
|
59
|
-
left: 34.5%;
|
|
60
|
-
top: 66%;
|
|
61
|
-
font-size: 12px;
|
|
62
|
-
color: #3861ca;
|
|
63
|
-
font-weight: 500;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.wechatMsgContainer{
|
|
68
|
-
position: absolute;
|
|
69
|
-
left: 30%;
|
|
70
|
-
top: 20%;
|
|
71
|
-
background: white;
|
|
72
|
-
width: 40%;
|
|
73
|
-
text-align: left;
|
|
74
|
-
height: fit-content;
|
|
75
|
-
border-radius: $CAP_SPACE_04;
|
|
76
|
-
.richmedia-template {
|
|
77
|
-
.richmedia-image-container {
|
|
78
|
-
width: 100%;
|
|
79
|
-
height: 102px;
|
|
80
|
-
position: relative;
|
|
81
|
-
img {
|
|
82
|
-
border-top-left-radius: 4px;
|
|
83
|
-
border-top-right-radius: 4px;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
.name-container-with-abstract {
|
|
87
|
-
padding: $CAP_SPACE_12;
|
|
88
|
-
height: 68px;
|
|
89
|
-
}
|
|
90
|
-
.name-container {
|
|
91
|
-
position: absolute;
|
|
92
|
-
bottom: 0px;
|
|
93
|
-
height: 44px;
|
|
94
|
-
padding-top: 16px;
|
|
95
|
-
padding-left: 12px;
|
|
96
|
-
color: $CAP_WHITE;
|
|
97
|
-
opacity: 0.7;
|
|
98
|
-
width: 100%;
|
|
99
|
-
background-image: linear-gradient(to top,black 0% ,transparent 100%);
|
|
100
|
-
}
|
|
101
|
-
.additional-richmedia-container {
|
|
102
|
-
display: flex;
|
|
103
|
-
justify-content: space-between;
|
|
104
|
-
margin: 8px;
|
|
105
|
-
padding-bottom: 8px;
|
|
106
|
-
img {
|
|
107
|
-
border-radius: 4px;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
.additional-richmedia-container:not(:last-child) {
|
|
111
|
-
border-bottom: 1px solid #dfe2e7;
|
|
112
|
-
}
|
|
113
|
-
div {
|
|
114
|
-
text-overflow: ellipsis;
|
|
115
|
-
overflow: hidden;
|
|
116
|
-
white-space: nowrap;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
.wechatMsgContainerOutbound{
|
|
121
|
-
position: absolute;
|
|
122
|
-
left: 35%;
|
|
123
|
-
top: 20%;
|
|
124
|
-
background: white;
|
|
125
|
-
width: 30%;
|
|
126
|
-
text-align: left;
|
|
127
|
-
}
|
|
128
|
-
.wechatMsgContainerCardLayout {
|
|
129
|
-
position: absolute;
|
|
130
|
-
left: 20%;
|
|
131
|
-
top: 20%;
|
|
132
|
-
background: white;
|
|
133
|
-
width: 60%;
|
|
134
|
-
text-align: left;
|
|
135
|
-
}
|
|
136
|
-
.overflow-handle-preview {
|
|
137
|
-
overflow-y: auto;
|
|
138
|
-
}
|
|
139
|
-
.overflow-handle-preview-outbound {
|
|
140
|
-
height: 330px;
|
|
141
|
-
overflow-y: auto;
|
|
142
|
-
}
|
|
143
|
-
.preview-overflow-wrap-fields {
|
|
144
|
-
text-overflow: ellipsis;
|
|
145
|
-
overflow: hidden;
|
|
146
|
-
overflow-wrap: break-word;
|
|
147
|
-
display: -webkit-box !important;
|
|
148
|
-
-webkit-box-orient: vertical;
|
|
149
|
-
-webkit-line-clamp: 2;
|
|
150
|
-
text-align: left;
|
|
151
|
-
width: 200px;
|
|
1
|
+
@import '~@capillarytech/cap-ui-library/styles/_variables.scss';
|
|
2
|
+
|
|
3
|
+
.shell-lock-screen-android .main-screen-preview .wechatMsgContainer{
|
|
4
|
+
position: absolute;
|
|
5
|
+
left: 53.5%;
|
|
6
|
+
top:28%;
|
|
7
|
+
background: white;
|
|
8
|
+
width: 19.5%;
|
|
9
|
+
text-align: left;
|
|
10
|
+
height: fit-content;
|
|
11
|
+
border-radius: 0.285rem;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.shell-lock-screen-android .lock-screen-preview{
|
|
15
|
+
.wechat-android-sender-id{
|
|
16
|
+
position: absolute;
|
|
17
|
+
top: 46%;
|
|
18
|
+
font-size: 10px;
|
|
19
|
+
left: 28%;
|
|
20
|
+
}
|
|
21
|
+
.wechat-android-title{
|
|
22
|
+
position: absolute;
|
|
23
|
+
top: 49%;
|
|
24
|
+
font-size: 10px;
|
|
25
|
+
left: 28%;
|
|
26
|
+
color: #5e6c84;
|
|
27
|
+
}
|
|
28
|
+
.wechat-android-action-buttons{
|
|
29
|
+
position: absolute;
|
|
30
|
+
left: 28%;
|
|
31
|
+
top: 53%;
|
|
32
|
+
font-size: 10px;
|
|
33
|
+
color: #3861ca;
|
|
34
|
+
font-weight: 500;
|
|
35
|
+
}
|
|
36
|
+
.wechat-ios-sender-id{
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 44%;
|
|
39
|
+
font-size: 10px;
|
|
40
|
+
left: 28.5%;
|
|
41
|
+
}
|
|
42
|
+
.wechat-ios-title{
|
|
43
|
+
position: absolute;
|
|
44
|
+
top: 47%;
|
|
45
|
+
font-size: 10px;
|
|
46
|
+
left: 28.5%;
|
|
47
|
+
color: #5e6c84;
|
|
48
|
+
}
|
|
49
|
+
.wechat-ios-action-reply{
|
|
50
|
+
position: absolute;
|
|
51
|
+
left: 35%;
|
|
52
|
+
top: 59%;
|
|
53
|
+
font-size: 12px;
|
|
54
|
+
color: #3861ca;
|
|
55
|
+
font-weight: 500;
|
|
56
|
+
}
|
|
57
|
+
.wechat-ios-action-cancel{
|
|
58
|
+
position: absolute;
|
|
59
|
+
left: 34.5%;
|
|
60
|
+
top: 66%;
|
|
61
|
+
font-size: 12px;
|
|
62
|
+
color: #3861ca;
|
|
63
|
+
font-weight: 500;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.wechatMsgContainer{
|
|
68
|
+
position: absolute;
|
|
69
|
+
left: 30%;
|
|
70
|
+
top: 20%;
|
|
71
|
+
background: white;
|
|
72
|
+
width: 40%;
|
|
73
|
+
text-align: left;
|
|
74
|
+
height: fit-content;
|
|
75
|
+
border-radius: $CAP_SPACE_04;
|
|
76
|
+
.richmedia-template {
|
|
77
|
+
.richmedia-image-container {
|
|
78
|
+
width: 100%;
|
|
79
|
+
height: 102px;
|
|
80
|
+
position: relative;
|
|
81
|
+
img {
|
|
82
|
+
border-top-left-radius: 4px;
|
|
83
|
+
border-top-right-radius: 4px;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
.name-container-with-abstract {
|
|
87
|
+
padding: $CAP_SPACE_12;
|
|
88
|
+
height: 68px;
|
|
89
|
+
}
|
|
90
|
+
.name-container {
|
|
91
|
+
position: absolute;
|
|
92
|
+
bottom: 0px;
|
|
93
|
+
height: 44px;
|
|
94
|
+
padding-top: 16px;
|
|
95
|
+
padding-left: 12px;
|
|
96
|
+
color: $CAP_WHITE;
|
|
97
|
+
opacity: 0.7;
|
|
98
|
+
width: 100%;
|
|
99
|
+
background-image: linear-gradient(to top,black 0% ,transparent 100%);
|
|
100
|
+
}
|
|
101
|
+
.additional-richmedia-container {
|
|
102
|
+
display: flex;
|
|
103
|
+
justify-content: space-between;
|
|
104
|
+
margin: 8px;
|
|
105
|
+
padding-bottom: 8px;
|
|
106
|
+
img {
|
|
107
|
+
border-radius: 4px;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
.additional-richmedia-container:not(:last-child) {
|
|
111
|
+
border-bottom: 1px solid #dfe2e7;
|
|
112
|
+
}
|
|
113
|
+
div {
|
|
114
|
+
text-overflow: ellipsis;
|
|
115
|
+
overflow: hidden;
|
|
116
|
+
white-space: nowrap;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
.wechatMsgContainerOutbound{
|
|
121
|
+
position: absolute;
|
|
122
|
+
left: 35%;
|
|
123
|
+
top: 20%;
|
|
124
|
+
background: white;
|
|
125
|
+
width: 30%;
|
|
126
|
+
text-align: left;
|
|
127
|
+
}
|
|
128
|
+
.wechatMsgContainerCardLayout {
|
|
129
|
+
position: absolute;
|
|
130
|
+
left: 20%;
|
|
131
|
+
top: 20%;
|
|
132
|
+
background: white;
|
|
133
|
+
width: 60%;
|
|
134
|
+
text-align: left;
|
|
135
|
+
}
|
|
136
|
+
.overflow-handle-preview {
|
|
137
|
+
overflow-y: auto;
|
|
138
|
+
}
|
|
139
|
+
.overflow-handle-preview-outbound {
|
|
140
|
+
height: 330px;
|
|
141
|
+
overflow-y: auto;
|
|
142
|
+
}
|
|
143
|
+
.preview-overflow-wrap-fields {
|
|
144
|
+
text-overflow: ellipsis;
|
|
145
|
+
overflow: hidden;
|
|
146
|
+
overflow-wrap: break-word;
|
|
147
|
+
display: -webkit-box !important;
|
|
148
|
+
-webkit-box-orient: vertical;
|
|
149
|
+
-webkit-line-clamp: 2;
|
|
150
|
+
text-align: left;
|
|
151
|
+
width: 200px;
|
|
152
152
|
}
|
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* WechatRichmediaTemplatePreview Messages
|
|
3
|
-
*
|
|
4
|
-
* This contains all the text for the WechatRichmediaTemplatePreview component.
|
|
5
|
-
*/
|
|
6
|
-
import { defineMessages } from 'react-intl';
|
|
7
|
-
|
|
8
|
-
export default defineMessages({
|
|
9
|
-
header: {
|
|
10
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.header',
|
|
11
|
-
defaultMessage: 'This is the WechatRichmediaTemplatePreview component !',
|
|
12
|
-
},
|
|
13
|
-
select: {
|
|
14
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.select',
|
|
15
|
-
defaultMessage: 'Select',
|
|
16
|
-
},
|
|
17
|
-
edit: {
|
|
18
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
|
|
19
|
-
defaultMessage: 'Edit',
|
|
20
|
-
},
|
|
21
|
-
MarkAsRead: {
|
|
22
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
|
|
23
|
-
defaultMessage: 'Mark as read',
|
|
24
|
-
},
|
|
25
|
-
reply: {
|
|
26
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
|
|
27
|
-
defaultMessage: 'Reply',
|
|
28
|
-
},
|
|
29
|
-
cancel: {
|
|
30
|
-
id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
|
|
31
|
-
defaultMessage: 'Cancel',
|
|
32
|
-
},
|
|
33
|
-
});
|
|
1
|
+
/*
|
|
2
|
+
* WechatRichmediaTemplatePreview Messages
|
|
3
|
+
*
|
|
4
|
+
* This contains all the text for the WechatRichmediaTemplatePreview component.
|
|
5
|
+
*/
|
|
6
|
+
import { defineMessages } from 'react-intl';
|
|
7
|
+
|
|
8
|
+
export default defineMessages({
|
|
9
|
+
header: {
|
|
10
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.header',
|
|
11
|
+
defaultMessage: 'This is the WechatRichmediaTemplatePreview component !',
|
|
12
|
+
},
|
|
13
|
+
select: {
|
|
14
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.select',
|
|
15
|
+
defaultMessage: 'Select',
|
|
16
|
+
},
|
|
17
|
+
edit: {
|
|
18
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.edit',
|
|
19
|
+
defaultMessage: 'Edit',
|
|
20
|
+
},
|
|
21
|
+
MarkAsRead: {
|
|
22
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.MarkAsRead',
|
|
23
|
+
defaultMessage: 'Mark as read',
|
|
24
|
+
},
|
|
25
|
+
reply: {
|
|
26
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.reply',
|
|
27
|
+
defaultMessage: 'Reply',
|
|
28
|
+
},
|
|
29
|
+
cancel: {
|
|
30
|
+
id: 'creatives.components.WechatRichmediaTemplatePreview.cancel',
|
|
31
|
+
defaultMessage: 'Cancel',
|
|
32
|
+
},
|
|
33
|
+
});
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// import React from 'react';
|
|
2
|
-
// import { shallow } from 'enzyme';
|
|
3
|
-
|
|
4
|
-
// import WechatRichmediaTemplatePreview from '../index';
|
|
5
|
-
|
|
6
|
-
describe('<WechatRichmediaTemplatePreview />', () => {
|
|
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 WechatRichmediaTemplatePreview from '../index';
|
|
5
|
+
|
|
6
|
+
describe('<WechatRichmediaTemplatePreview />', () => {
|
|
7
|
+
it('Expect to have unit tests specified', () => {
|
|
8
|
+
expect(true).toEqual(false);
|
|
9
|
+
});
|
|
10
|
+
});
|