@capillarytech/creatives-library 8.0.353-alpha.6 → 8.0.354
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/constants/unified.js +0 -29
- package/index.html +1 -0
- package/package.json +1 -1
- package/services/tests/api.test.js +20 -35
- package/utils/cdnTransformation.js +63 -3
- package/utils/commonUtils.js +1 -19
- package/utils/tests/cdnTransformation.test.js +111 -0
- package/v2Components/CapActionButton/constants.js +0 -7
- package/v2Components/CapActionButton/index.js +108 -166
- package/v2Components/CapActionButton/index.scss +6 -157
- package/v2Components/CapActionButton/messages.js +3 -19
- package/v2Components/CapActionButton/tests/index.test.js +17 -41
- package/v2Components/CapTagList/index.js +0 -10
- package/v2Components/CommonTestAndPreview/CustomValuesEditor.js +49 -72
- package/v2Components/CommonTestAndPreview/DeliverySettings/DeliverySettings.scss +2 -8
- package/v2Components/CommonTestAndPreview/DeliverySettings/ModifyDeliverySettings.js +21 -213
- package/v2Components/CommonTestAndPreview/DeliverySettings/constants.js +0 -16
- package/v2Components/CommonTestAndPreview/DeliverySettings/index.js +10 -85
- package/v2Components/CommonTestAndPreview/DeliverySettings/messages.js +0 -30
- package/v2Components/CommonTestAndPreview/DeliverySettings/utils/parseSenderDetailsResponse.js +11 -79
- package/v2Components/CommonTestAndPreview/SendTestMessage.js +5 -10
- package/v2Components/CommonTestAndPreview/UnifiedPreview/RcsPreviewContent.js +15 -157
- package/v2Components/CommonTestAndPreview/UnifiedPreview/_unifiedPreview.scss +76 -346
- package/v2Components/CommonTestAndPreview/UnifiedPreview/index.js +4 -133
- package/v2Components/CommonTestAndPreview/_commonTestAndPreview.scss +0 -11
- package/v2Components/CommonTestAndPreview/constants.js +2 -38
- package/v2Components/CommonTestAndPreview/index.js +186 -691
- package/v2Components/CommonTestAndPreview/messages.js +3 -45
- package/v2Components/CommonTestAndPreview/sagas.js +6 -25
- package/v2Components/CommonTestAndPreview/tests/CustomValuesEditor.test.js +284 -308
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/ModifyDeliverySettings.test.js +65 -231
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/index.test.js +5 -118
- package/v2Components/CommonTestAndPreview/tests/DeliverySettings/utils/parseSenderDetailsResponse.test.js +0 -341
- package/v2Components/CommonTestAndPreview/tests/PreviewSection.test.js +1 -8
- package/v2Components/CommonTestAndPreview/tests/SendTestMessage.test.js +13 -34
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/RcsPreviewContent.test.js +283 -281
- package/v2Components/CommonTestAndPreview/tests/UnifiedPreview/index.test.js +1 -199
- package/v2Components/CommonTestAndPreview/tests/index.test.js +4 -132
- package/v2Components/CommonTestAndPreview/tests/sagas.test.js +26 -36
- package/v2Components/FormBuilder/index.js +6 -11
- package/v2Components/TemplatePreview/_templatePreview.scss +23 -38
- package/v2Components/TemplatePreview/index.js +31 -143
- package/v2Components/TemplatePreview/tests/index.test.js +0 -142
- package/v2Components/TestAndPreviewSlidebox/index.js +1 -13
- package/v2Components/TestAndPreviewSlidebox/sagas.js +4 -11
- package/v2Components/TestAndPreviewSlidebox/tests/saga.test.js +1 -3
- package/v2Containers/CreativesContainer/SlideBoxContent.js +4 -36
- package/v2Containers/CreativesContainer/SlideBoxFooter.js +1 -10
- package/v2Containers/CreativesContainer/SlideBoxHeader.js +4 -29
- package/v2Containers/CreativesContainer/constants.js +0 -9
- package/v2Containers/CreativesContainer/index.js +103 -322
- package/v2Containers/CreativesContainer/index.scss +1 -51
- package/v2Containers/CreativesContainer/tests/SlideBoxFooter.test.js +34 -78
- package/v2Containers/CreativesContainer/tests/SlideBoxHeader.test.js +16 -79
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxContent.test.js.snap +0 -8
- package/v2Containers/CreativesContainer/tests/__snapshots__/SlideBoxHeader.test.js.snap +98 -357
- package/v2Containers/CreativesContainer/tests/__snapshots__/index.test.js.snap +15 -20
- package/v2Containers/CreativesContainer/tests/index.test.js +9 -71
- package/v2Containers/MobilePush/Create/test/saga.test.js +2 -2
- package/v2Containers/Rcs/constants.js +10 -119
- package/v2Containers/Rcs/index.js +818 -2450
- package/v2Containers/Rcs/index.scss +8 -280
- package/v2Containers/Rcs/messages.js +3 -34
- package/v2Containers/Rcs/tests/__snapshots__/index.test.js.snap +70073 -98018
- package/v2Containers/Rcs/tests/__snapshots__/utils.test.js.snap +5 -0
- package/v2Containers/Rcs/tests/index.test.js +121 -152
- package/v2Containers/Rcs/tests/mockData.js +0 -38
- package/v2Containers/Rcs/tests/utils.test.js +30 -646
- package/v2Containers/Rcs/utils.js +11 -478
- package/v2Containers/Sms/Create/index.js +40 -106
- package/v2Containers/SmsTrai/Create/index.js +4 -9
- package/v2Containers/SmsTrai/Edit/constants.js +0 -2
- package/v2Containers/SmsTrai/Edit/index.js +130 -640
- package/v2Containers/SmsTrai/Edit/messages.js +4 -14
- package/v2Containers/SmsTrai/Edit/tests/__snapshots__/index.test.js.snap +2296 -4249
- package/v2Containers/SmsWrapper/index.js +8 -37
- package/v2Containers/TagList/index.js +0 -6
- package/v2Containers/Templates/_templates.scss +9 -166
- package/v2Containers/Templates/actions.js +0 -11
- package/v2Containers/Templates/constants.js +0 -2
- package/v2Containers/Templates/index.js +52 -120
- package/v2Containers/Templates/sagas.js +18 -57
- package/v2Containers/Templates/tests/__snapshots__/index.test.js.snap +1017 -1062
- package/v2Containers/Templates/tests/sagas.test.js +39 -205
- package/v2Containers/TemplatesV2/TemplatesV2.style.js +1 -72
- package/v2Containers/TemplatesV2/index.js +23 -86
- package/v2Containers/WeChat/MapTemplates/test/saga.test.js +9 -9
- package/v2Containers/Whatsapp/index.js +20 -3
- package/v2Containers/Whatsapp/tests/__snapshots__/index.test.js.snap +34 -578
- package/utils/rcsPayloadUtils.js +0 -92
- package/utils/templateVarUtils.js +0 -201
- package/utils/tests/rcsPayloadUtils.test.js +0 -226
- package/utils/tests/templateVarUtils.test.js +0 -204
- package/v2Components/CommonTestAndPreview/previewApiUtils.js +0 -59
- package/v2Components/CommonTestAndPreview/tests/previewApiUtils.test.js +0 -67
- package/v2Components/SmsFallback/SmsFallbackLocalSelector.js +0 -91
- package/v2Components/SmsFallback/constants.js +0 -73
- package/v2Components/SmsFallback/index.js +0 -956
- package/v2Components/SmsFallback/index.scss +0 -265
- package/v2Components/SmsFallback/messages.js +0 -78
- package/v2Components/SmsFallback/smsFallbackUtils.js +0 -119
- package/v2Components/SmsFallback/tests/SmsFallbackLocalSelector.test.js +0 -50
- package/v2Components/SmsFallback/tests/rcsSmsFallback.acceptance.test.js +0 -147
- package/v2Components/SmsFallback/tests/smsFallbackHandlers.test.js +0 -304
- package/v2Components/SmsFallback/tests/smsFallbackUi.test.js +0 -223
- package/v2Components/SmsFallback/tests/smsFallbackUtils.test.js +0 -309
- package/v2Components/SmsFallback/tests/useLocalTemplateList.test.js +0 -422
- package/v2Components/SmsFallback/useLocalTemplateList.js +0 -92
- package/v2Components/TemplatePreview/constants.js +0 -2
- package/v2Components/VarSegmentMessageEditor/constants.js +0 -2
- package/v2Components/VarSegmentMessageEditor/index.js +0 -125
- package/v2Components/VarSegmentMessageEditor/index.scss +0 -46
- package/v2Containers/CreativesContainer/CreativesSlideBoxWrapper.js +0 -43
- package/v2Containers/CreativesContainer/embeddedSlideboxUtils.js +0 -79
- package/v2Containers/CreativesContainer/tests/SlideBoxContent.localTemplates.test.js +0 -90
- package/v2Containers/CreativesContainer/tests/embeddedSlideboxUtils.test.js +0 -258
- package/v2Containers/CreativesContainer/tests/useLocalTemplatesProp.test.js +0 -125
- package/v2Containers/Rcs/rcsLibraryHydrationUtils.js +0 -225
- package/v2Containers/Rcs/tests/rcsLibraryHydrationUtils.test.js +0 -318
- package/v2Containers/Sms/smsFormDataHelpers.js +0 -67
- package/v2Containers/Sms/tests/smsFormDataHelpers.test.js +0 -253
- package/v2Containers/SmsTrai/Edit/index.scss +0 -121
- package/v2Containers/Templates/TemplatesActionBar.js +0 -101
- package/v2Containers/Templates/tests/TemplatesActionBar.test.js +0 -120
- package/v2Containers/Templates/tests/smsTemplatesListApi.test.js +0 -180
- package/v2Containers/Templates/utils/smsTemplatesListApi.js +0 -79
- package/v2Containers/TemplatesV2/tests/TemplatesV2.localTemplates.test.js +0 -131
|
@@ -33,10 +33,6 @@ import injectReducer from '../../../utils/injectReducer';
|
|
|
33
33
|
import v2SmsCreateReducer from './reducer';
|
|
34
34
|
import * as globalActions from '../../Cap/actions';
|
|
35
35
|
import TestAndPreviewSlidebox from '../../../v2Components/TestAndPreviewSlidebox';
|
|
36
|
-
import {
|
|
37
|
-
getSmsEmbeddedFooterValidity,
|
|
38
|
-
getSmsMessageFromFormData,
|
|
39
|
-
} from '../smsFormDataHelpers';
|
|
40
36
|
|
|
41
37
|
export class Create extends React.Component { // eslint-disable-line react/prefer-stateless-function
|
|
42
38
|
constructor(props) {
|
|
@@ -57,11 +53,6 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
57
53
|
isTestAndPreviewMode: false,
|
|
58
54
|
pendingGetFormData: false,
|
|
59
55
|
};
|
|
60
|
-
// Tracks the last validity value reported to SmsFallback so componentDidUpdate
|
|
61
|
-
// does not dispatch on every render and create an infinite update loop.
|
|
62
|
-
// Intentionally undefined (not true) so the first render always reports the
|
|
63
|
-
// real validity rather than assuming the form starts invalid.
|
|
64
|
-
this._lastReportedSmsFooterInvalid = undefined;
|
|
65
56
|
this.saveFormData = this.saveFormData.bind(this);
|
|
66
57
|
this.onFormDataChange = this.onFormDataChange.bind(this);
|
|
67
58
|
this.onTemplateNameChange = this.onTemplateNameChange.bind(this);
|
|
@@ -168,9 +159,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
168
159
|
layout: 'SMS',
|
|
169
160
|
type: 'TAG',
|
|
170
161
|
context: this.props.location.query.type === 'embedded' ? this.props.location.query.module : 'default',
|
|
171
|
-
embedded: this.props.
|
|
172
|
-
? 'full'
|
|
173
|
-
: (this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full'),
|
|
162
|
+
embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
|
|
174
163
|
};
|
|
175
164
|
if (this.props.getDefaultTags) {
|
|
176
165
|
query.context = this.props.getDefaultTags;
|
|
@@ -183,28 +172,6 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
183
172
|
}
|
|
184
173
|
}
|
|
185
174
|
|
|
186
|
-
componentDidUpdate() {
|
|
187
|
-
if (!this.props.embeddedSmsFallback || typeof this.props.onEmbeddedSmsFooterValidity !== 'function') {
|
|
188
|
-
return;
|
|
189
|
-
}
|
|
190
|
-
const validity = getSmsEmbeddedFooterValidity(this.state.formData, this.state.tabCount);
|
|
191
|
-
const isTemplateNameEmpty = !!validity.isTemplateNameEmpty;
|
|
192
|
-
const isMessageEmpty = !!validity.isMessageEmpty;
|
|
193
|
-
// Only dispatch when the validity tuple changes. Dispatching unconditionally caused
|
|
194
|
-
// an infinite loop: componentDidUpdate → dispatch → SmsFallback re-render →
|
|
195
|
-
// SmsCreate re-render → componentDidUpdate → ... even when state was unchanged.
|
|
196
|
-
// Tracking both fields individually (not just the combined isInvalid flag) ensures
|
|
197
|
-
// the parent receives an updated validity object when individual fields flip even
|
|
198
|
-
// while the combined invalid state stays the same (e.g. true→true with different fields).
|
|
199
|
-
if (
|
|
200
|
-
this._lastReportedSmsFooterTemplateNameEmpty === isTemplateNameEmpty &&
|
|
201
|
-
this._lastReportedSmsFooterMessageEmpty === isMessageEmpty
|
|
202
|
-
) return;
|
|
203
|
-
this._lastReportedSmsFooterTemplateNameEmpty = isTemplateNameEmpty;
|
|
204
|
-
this._lastReportedSmsFooterMessageEmpty = isMessageEmpty;
|
|
205
|
-
this.props.onEmbeddedSmsFooterValidity(validity);
|
|
206
|
-
}
|
|
207
|
-
|
|
208
175
|
componentWillUnmount() {
|
|
209
176
|
if (this.pendingGetFormDataTimeout) {
|
|
210
177
|
clearTimeout(this.pendingGetFormDataTimeout);
|
|
@@ -308,10 +275,6 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
308
275
|
}
|
|
309
276
|
const result = {};
|
|
310
277
|
result.base = baseData;
|
|
311
|
-
/* Root field used by FormBuilder; embedded getFormSubscriptionData reads value.base */
|
|
312
|
-
if (formData['template-name'] !== undefined) {
|
|
313
|
-
result.base['template-name'] = formData['template-name'];
|
|
314
|
-
}
|
|
315
278
|
if (this.state.isValid) {
|
|
316
279
|
const msgObj = charCount.updateCharCount(baseData['sms-editor']);
|
|
317
280
|
result.base.msg_count = msgObj.msgCount;
|
|
@@ -921,9 +884,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
921
884
|
layout: 'SMS',
|
|
922
885
|
type: 'TAG',
|
|
923
886
|
context: (data && data.toLowerCase() === 'all') ? 'default' : (data && data.toLowerCase()),
|
|
924
|
-
embedded: this.props.
|
|
925
|
-
? 'full'
|
|
926
|
-
: (this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full'),
|
|
887
|
+
embedded: this.props.location.query.type === 'embedded' ? this.props.location.query.type : 'full',
|
|
927
888
|
};
|
|
928
889
|
this.props.globalActions.fetchSchemaForEntity(query);
|
|
929
890
|
}
|
|
@@ -931,29 +892,11 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
931
892
|
removeStandAlone() {
|
|
932
893
|
const schema = _.cloneDeep(this.state.schema);
|
|
933
894
|
const childSections = _.get(schema, 'standalone.sections[0].childSections');
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
/*
|
|
940
|
-
* Creatives library drops the standalone template-name block because `SlideBoxHeader`
|
|
941
|
-
* shows the name. This is independent of the section count — guard it separately so
|
|
942
|
-
* it still runs even when childSections.length <= 2 (e.g. schema arrives pre-trimmed).
|
|
943
|
-
* RCS SMS fallback uses the same slidebox footer but keeps the name in the form.
|
|
944
|
-
*/
|
|
945
|
-
if (!this.props.embeddedSmsFallback) {
|
|
946
|
-
const fields = _.get(childSections, '[1].childSections[0].childSections');
|
|
947
|
-
if (fields && fields.length > 0) {
|
|
948
|
-
fields.splice(0, 1);
|
|
949
|
-
_.set(childSections, '[1].childSections[0].childSections', fields);
|
|
950
|
-
}
|
|
951
|
-
}
|
|
952
|
-
_.set(schema, 'standalone.sections[0].childSections', childSections);
|
|
953
|
-
}
|
|
954
|
-
// Always increment loadingStatus — isSmsLoading() requires >= 2 in library mode
|
|
955
|
-
// (isFullMode=false). The early return previously skipped this, leaving the
|
|
956
|
-
// spinner stuck forever when the schema had <= 2 childSections.
|
|
895
|
+
childSections.splice(2, 1);
|
|
896
|
+
const fields = _.get(childSections, '[1].childSections[0].childSections');//removing template name section
|
|
897
|
+
fields.splice(0, 1);
|
|
898
|
+
_.set(childSections, '[1].childSections[0].childSections', fields);
|
|
899
|
+
_.set(schema, 'standalone.sections[0].childSections', childSections);
|
|
957
900
|
this.setState({ schema, loadingStatus: this.state.loadingStatus + 1 });
|
|
958
901
|
}
|
|
959
902
|
|
|
@@ -998,8 +941,37 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
998
941
|
this.setState({startValidation: false});
|
|
999
942
|
}
|
|
1000
943
|
|
|
1001
|
-
getTemplateContent = () =>
|
|
1002
|
-
|
|
944
|
+
getTemplateContent = () => {
|
|
945
|
+
// Get SMS content from formData
|
|
946
|
+
if (!this.state.formData || !Array.isArray(this.state.formData) || this.state.formData.length === 0) {
|
|
947
|
+
return '';
|
|
948
|
+
}
|
|
949
|
+
const currentTabData = this.state.formData[this.state.currentTab - 1];
|
|
950
|
+
if (!currentTabData) {
|
|
951
|
+
return '';
|
|
952
|
+
}
|
|
953
|
+
|
|
954
|
+
// PRIORITY 1: Check direct path first (most common for SMS)
|
|
955
|
+
// This handles: formData[0]['sms-editor']
|
|
956
|
+
if (currentTabData['sms-editor']) {
|
|
957
|
+
return currentTabData['sms-editor'];
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
// PRIORITY 2: Check activeTab structure (for versioned templates)
|
|
961
|
+
// This handles: formData[0][activeTab]['sms-editor']
|
|
962
|
+
const activeTab = currentTabData?.activeTab || 'base';
|
|
963
|
+
if (currentTabData[activeTab]?.['sms-editor']) {
|
|
964
|
+
return currentTabData[activeTab]['sms-editor'];
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
// PRIORITY 3: Check base explicitly (fallback)
|
|
968
|
+
// This handles: formData[0]['base']['sms-editor']
|
|
969
|
+
if (currentTabData['base']?.['sms-editor']) {
|
|
970
|
+
return currentTabData['base']['sms-editor'];
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
return '';
|
|
974
|
+
}
|
|
1003
975
|
|
|
1004
976
|
handleTestAndPreview = () => {
|
|
1005
977
|
// If parent is managing state (props exist), call parent handler
|
|
@@ -1028,35 +1000,6 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
1028
1000
|
}
|
|
1029
1001
|
|
|
1030
1002
|
saveFormData() {
|
|
1031
|
-
/*
|
|
1032
|
-
* RCS SMS fallback slidebox (embeddedSmsFallback): parent passes isFullMode from RCS, but we must not
|
|
1033
|
-
* call createTemplate — that spins CapSpin on createTemplateInProgress and is not the embedded contract.
|
|
1034
|
-
* Same as library: hand off form payload via getFormSubscriptionData.
|
|
1035
|
-
*/
|
|
1036
|
-
if (this.props.embeddedSmsFallback && this.props.getFormSubscriptionData) {
|
|
1037
|
-
const { isTemplateNameEmpty, isMessageEmpty } = getSmsEmbeddedFooterValidity(
|
|
1038
|
-
this.state.formData,
|
|
1039
|
-
this.state.tabCount,
|
|
1040
|
-
);
|
|
1041
|
-
if (isTemplateNameEmpty || isMessageEmpty) {
|
|
1042
|
-
this.setState({ startValidation: true, pendingGetFormData: false });
|
|
1043
|
-
if (this.props.onValidationFail) {
|
|
1044
|
-
this.props.onValidationFail();
|
|
1045
|
-
}
|
|
1046
|
-
return;
|
|
1047
|
-
}
|
|
1048
|
-
const payload = this.getFormData();
|
|
1049
|
-
if (!payload.validity) {
|
|
1050
|
-
if (this.props.onValidationFail) {
|
|
1051
|
-
this.props.onValidationFail();
|
|
1052
|
-
}
|
|
1053
|
-
this.setState({ pendingGetFormData: false, startValidation: false });
|
|
1054
|
-
return;
|
|
1055
|
-
}
|
|
1056
|
-
this.props.getFormSubscriptionData(payload);
|
|
1057
|
-
this.setState({ pendingGetFormData: false, startValidation: false });
|
|
1058
|
-
return;
|
|
1059
|
-
}
|
|
1060
1003
|
// In library mode: FormBuilder calls onSubmit only after liquid validation succeeds.
|
|
1061
1004
|
// Submit to parent here so the slidebox can close with valid data.
|
|
1062
1005
|
if (!this.props.isFullMode) {
|
|
@@ -1156,9 +1099,7 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
1156
1099
|
onTestContentClicked={this.props.onTestContentClicked}
|
|
1157
1100
|
onPreviewContentClicked={this.props.onPreviewContentClicked}
|
|
1158
1101
|
eventContextTags={this.props?.eventContextTags}
|
|
1159
|
-
|
|
1160
|
-
tagListPopoverOverlayStyle={this.props.tagListPopoverOverlayStyle}
|
|
1161
|
-
tagListPopoverOverlayClassName={this.props.tagListPopoverOverlayClassName}
|
|
1102
|
+
waitEventContextTags={this.props?.waitEventContextTags}
|
|
1162
1103
|
/>
|
|
1163
1104
|
</CapColumn>
|
|
1164
1105
|
</CapRow>
|
|
@@ -1171,7 +1112,6 @@ export class Create extends React.Component { // eslint-disable-line react/prefe
|
|
|
1171
1112
|
formData={this.state.formData}
|
|
1172
1113
|
content={this.getTemplateContent()}
|
|
1173
1114
|
currentChannel={SMS}
|
|
1174
|
-
smsRegister={this.props.smsRegister}
|
|
1175
1115
|
/>
|
|
1176
1116
|
</div>
|
|
1177
1117
|
);
|
|
@@ -1196,17 +1136,11 @@ Create.propTypes = {
|
|
|
1196
1136
|
isLoadingMetaEntities: PropTypes.bool,
|
|
1197
1137
|
selectedOfferDetails: PropTypes.array,
|
|
1198
1138
|
eventContextTags: PropTypes.array,
|
|
1139
|
+
waitEventContextTags: PropTypes.object,
|
|
1199
1140
|
showTestAndPreviewSlidebox: PropTypes.bool,
|
|
1200
1141
|
handleTestAndPreview: PropTypes.func,
|
|
1201
1142
|
handleCloseTestAndPreview: PropTypes.func,
|
|
1202
1143
|
isTestAndPreviewMode: PropTypes.bool,
|
|
1203
|
-
smsRegister: PropTypes.any,
|
|
1204
|
-
forceFullTagContext: PropTypes.bool,
|
|
1205
|
-
embeddedSmsFallback: PropTypes.bool,
|
|
1206
|
-
onEmbeddedSmsFooterValidity: PropTypes.func,
|
|
1207
|
-
tagListGetPopupContainer: PropTypes.func,
|
|
1208
|
-
tagListPopoverOverlayStyle: PropTypes.object,
|
|
1209
|
-
tagListPopoverOverlayClassName: PropTypes.string,
|
|
1210
1144
|
};
|
|
1211
1145
|
|
|
1212
1146
|
const mapStateToProps = createStructuredSelector({
|
|
@@ -70,7 +70,6 @@ export const SmsTraiCreate = (props) => {
|
|
|
70
70
|
onCreateComplete,
|
|
71
71
|
isFullMode,
|
|
72
72
|
onShowTemplates,
|
|
73
|
-
embeddedSmsFallback,
|
|
74
73
|
traiSms: {
|
|
75
74
|
duplicateDetails = {},
|
|
76
75
|
duplicateDetailsError = '',
|
|
@@ -660,11 +659,9 @@ export const SmsTraiCreate = (props) => {
|
|
|
660
659
|
|
|
661
660
|
const createCallback = ({ errorMessage }) => {
|
|
662
661
|
if (!errorMessage) {
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
});
|
|
667
|
-
}
|
|
662
|
+
CapNotification.success({
|
|
663
|
+
message: formatMessage(messages.smsCreateNotification),
|
|
664
|
+
});
|
|
668
665
|
actions.clearCreateResponse();
|
|
669
666
|
} else {
|
|
670
667
|
CapNotification.error({
|
|
@@ -744,9 +741,7 @@ export const SmsTraiCreate = (props) => {
|
|
|
744
741
|
{ templates: savedData },
|
|
745
742
|
(resp, errorMessage) => {
|
|
746
743
|
createCallback({ errorMessage });
|
|
747
|
-
if (
|
|
748
|
-
if (!errorMessage) onCreateComplete(savedData);
|
|
749
|
-
} else if (isFullMode) {
|
|
744
|
+
if (isFullMode) {
|
|
750
745
|
onCreateComplete();
|
|
751
746
|
} else {
|
|
752
747
|
onShowTemplates();
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
export const CHARLIMIT = 40;
|
|
8
|
-
/** Display / soft cap label for DLT SMS body length (matches product UI). */
|
|
9
|
-
export const SMS_TRAI_CONTENT_MAX_LENGTH = 1024;
|
|
10
8
|
export const SMS = 'SMS';
|
|
11
9
|
export const SMS_TRAI_VAR = '{#var#}';
|
|
12
10
|
export const TAG = 'TAG';
|