react-native-mobile-chat 0.1.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/LICENSE +20 -0
- package/README.md +235 -0
- package/android/build.gradle +77 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/appchat/AppChatModule.java +58 -0
- package/android/src/main/java/com/appchat/AppChatPackage.java +28 -0
- package/ios/AppChat.h +12 -0
- package/ios/AppChat.mm +67 -0
- package/ios/AppChat.xcodeproj/project.pbxproj +274 -0
- package/ios/AppChat.xcodeproj/project.xcworkspace/contents.xcworkspacedata +4 -0
- package/lib/commonjs/assets/images/arrow_left.png +0 -0
- package/lib/commonjs/assets/images/arrow_left_black.png +0 -0
- package/lib/commonjs/common/constants/index.js +20 -0
- package/lib/commonjs/common/constants/index.js.map +1 -0
- package/lib/commonjs/common/utils/index.js +53 -0
- package/lib/commonjs/common/utils/index.js.map +1 -0
- package/lib/commonjs/data/local/index.js +28 -0
- package/lib/commonjs/data/local/index.js.map +1 -0
- package/lib/commonjs/data/remote/index.js +87 -0
- package/lib/commonjs/data/remote/index.js.map +1 -0
- package/lib/commonjs/data/static/index.js +35 -0
- package/lib/commonjs/data/static/index.js.map +1 -0
- package/lib/commonjs/index.js +46 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/native/component/WebView.js +16 -0
- package/lib/commonjs/native/component/WebView.js.map +1 -0
- package/lib/commonjs/native/module/index.js +18 -0
- package/lib/commonjs/native/module/index.js.map +1 -0
- package/lib/commonjs/presentation/component/AppChatComponent.js +236 -0
- package/lib/commonjs/presentation/component/AppChatComponent.js.map +1 -0
- package/lib/commonjs/presentation/initialization/index.js +148 -0
- package/lib/commonjs/presentation/initialization/index.js.map +1 -0
- package/lib/commonjs/presentation/notification/index.js +50 -0
- package/lib/commonjs/presentation/notification/index.js.map +1 -0
- package/lib/module/assets/images/arrow_left.png +0 -0
- package/lib/module/assets/images/arrow_left_black.png +0 -0
- package/lib/module/common/constants/index.js +13 -0
- package/lib/module/common/constants/index.js.map +1 -0
- package/lib/module/common/utils/index.js +45 -0
- package/lib/module/common/utils/index.js.map +1 -0
- package/lib/module/data/local/index.js +20 -0
- package/lib/module/data/local/index.js.map +1 -0
- package/lib/module/data/remote/index.js +75 -0
- package/lib/module/data/remote/index.js.map +1 -0
- package/lib/module/data/static/index.js +28 -0
- package/lib/module/data/static/index.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/native/component/WebView.js +10 -0
- package/lib/module/native/component/WebView.js.map +1 -0
- package/lib/module/native/module/index.js +11 -0
- package/lib/module/native/module/index.js.map +1 -0
- package/lib/module/presentation/component/AppChatComponent.js +227 -0
- package/lib/module/presentation/component/AppChatComponent.js.map +1 -0
- package/lib/module/presentation/initialization/index.js +141 -0
- package/lib/module/presentation/initialization/index.js.map +1 -0
- package/lib/module/presentation/notification/index.js +41 -0
- package/lib/module/presentation/notification/index.js.map +1 -0
- package/lib/typescript/common/constants/index.d.ts +13 -0
- package/lib/typescript/common/constants/index.d.ts.map +1 -0
- package/lib/typescript/common/utils/index.d.ts +15 -0
- package/lib/typescript/common/utils/index.d.ts.map +1 -0
- package/lib/typescript/data/local/index.d.ts +4 -0
- package/lib/typescript/data/local/index.d.ts.map +1 -0
- package/lib/typescript/data/remote/index.d.ts +7 -0
- package/lib/typescript/data/remote/index.d.ts.map +1 -0
- package/lib/typescript/data/static/index.d.ts +23 -0
- package/lib/typescript/data/static/index.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/native/component/WebView.d.ts +8 -0
- package/lib/typescript/native/component/WebView.d.ts.map +1 -0
- package/lib/typescript/native/module/index.d.ts +2 -0
- package/lib/typescript/native/module/index.d.ts.map +1 -0
- package/lib/typescript/presentation/component/AppChatComponent.d.ts +22 -0
- package/lib/typescript/presentation/component/AppChatComponent.d.ts.map +1 -0
- package/lib/typescript/presentation/initialization/index.d.ts +2 -0
- package/lib/typescript/presentation/initialization/index.d.ts.map +1 -0
- package/lib/typescript/presentation/notification/index.d.ts +5 -0
- package/lib/typescript/presentation/notification/index.d.ts.map +1 -0
- package/package.json +165 -0
- package/react-native-app-chat.podspec +35 -0
- package/src/assets/images/arrow_left.png +0 -0
- package/src/assets/images/arrow_left_black.png +0 -0
- package/src/common/constants/index.tsx +12 -0
- package/src/common/utils/index.tsx +58 -0
- package/src/data/local/index.tsx +23 -0
- package/src/data/remote/index.tsx +80 -0
- package/src/data/static/index.tsx +28 -0
- package/src/index.tsx +11 -0
- package/src/native/component/WebView.tsx +10 -0
- package/src/native/module/index.tsx +18 -0
- package/src/presentation/component/AppChatComponent.tsx +154 -0
- package/src/presentation/initialization/index.tsx +149 -0
- package/src/presentation/notification/index.tsx +45 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { Platform } from "react-native";
|
|
2
|
+
import { AppChatStatic } from "../static";
|
|
3
|
+
import Constant from "../../common/constants";
|
|
4
|
+
export async function authenticate(clientId, clienSecret) {
|
|
5
|
+
const formData = new FormData();
|
|
6
|
+
formData.append('grant_type', 'client_credentials');
|
|
7
|
+
formData.append('client_id', clientId);
|
|
8
|
+
formData.append('client_secret', clienSecret);
|
|
9
|
+
return await fetch(`${Constant.BASE_URL}/oauth/token`, {
|
|
10
|
+
method: 'POST',
|
|
11
|
+
body: formData
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export async function createContact(externalId, fullName) {
|
|
15
|
+
let formData = new FormData();
|
|
16
|
+
formData.append('external_id', externalId);
|
|
17
|
+
formData.append('full_name', fullName);
|
|
18
|
+
return await fetch(`${Constant.BASE_URL}/api/core/v1/app_chat/${AppChatStatic.appId}/contacts`, {
|
|
19
|
+
headers: {
|
|
20
|
+
Authorization: AppChatStatic.accessToken
|
|
21
|
+
},
|
|
22
|
+
method: 'POST',
|
|
23
|
+
body: formData
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
export async function registerFcmToken(fcmToken) {
|
|
27
|
+
let formData = new FormData();
|
|
28
|
+
formData.append('app_id', AppChatStatic.appId);
|
|
29
|
+
formData.append('contact_id', AppChatStatic.contactId);
|
|
30
|
+
formData.append('resource_type', Platform.OS);
|
|
31
|
+
formData.append('token', fcmToken);
|
|
32
|
+
return await fetch(`${Constant.BASE_URL}/api/core/v1/app_chat/${AppChatStatic.appId}/notification_credentials`, {
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: AppChatStatic.accessToken
|
|
35
|
+
},
|
|
36
|
+
method: 'PUT',
|
|
37
|
+
body: formData
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
export async function revokeFcmToken(fcmToken) {
|
|
41
|
+
let formData = new FormData();
|
|
42
|
+
formData.append('app_id', AppChatStatic.appId);
|
|
43
|
+
formData.append('contact_id', AppChatStatic.contactId);
|
|
44
|
+
formData.append('resource_type', 'current');
|
|
45
|
+
formData.append('token', fcmToken);
|
|
46
|
+
return await fetch(`${Constant.BASE_URL}/api/core/v1/app_chat/${AppChatStatic.appId}/notification_credentials`, {
|
|
47
|
+
headers: {
|
|
48
|
+
Authorization: AppChatStatic.accessToken
|
|
49
|
+
},
|
|
50
|
+
method: 'DELETE',
|
|
51
|
+
body: formData
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
export async function validateBundleId(bundleId) {
|
|
55
|
+
let formData = new FormData();
|
|
56
|
+
formData.append('app_id', AppChatStatic.appId);
|
|
57
|
+
formData.append('bundle_id', bundleId);
|
|
58
|
+
formData.append('platform', Platform.OS);
|
|
59
|
+
return await fetch(`${Constant.BASE_URL}/api/core/v1/app_chat/${AppChatStatic.appId}/validate_bundle_id`, {
|
|
60
|
+
headers: {
|
|
61
|
+
Authorization: AppChatStatic.accessToken
|
|
62
|
+
},
|
|
63
|
+
method: 'POST',
|
|
64
|
+
body: formData
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
export async function getWidgetSetting() {
|
|
68
|
+
return await fetch(`${Constant.BASE_URL}/api/core/v1/app_chat/${AppChatStatic.appId}/widget_setting`, {
|
|
69
|
+
headers: {
|
|
70
|
+
Authorization: AppChatStatic.accessToken
|
|
71
|
+
},
|
|
72
|
+
method: 'GET'
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Platform","AppChatStatic","Constant","authenticate","clientId","clienSecret","formData","FormData","append","fetch","BASE_URL","method","body","createContact","externalId","fullName","appId","headers","Authorization","accessToken","registerFcmToken","fcmToken","contactId","OS","revokeFcmToken","validateBundleId","bundleId","getWidgetSetting"],"sourceRoot":"../../../../src","sources":["data/remote/index.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class AppChatStatic {
|
|
2
|
+
//Based on event
|
|
3
|
+
static appChatOpened = false;
|
|
4
|
+
|
|
5
|
+
//Get from init process
|
|
6
|
+
static accessToken = '';
|
|
7
|
+
static contactId = '';
|
|
8
|
+
static bundleIdValidation = '';
|
|
9
|
+
static encryptedUrlParams = '';
|
|
10
|
+
static initAppChatResult = '';
|
|
11
|
+
static appChatTheme = {
|
|
12
|
+
bgColorTheme: 'grey',
|
|
13
|
+
bgColorThemeOverlaid: 'grey',
|
|
14
|
+
fontColor: 'white',
|
|
15
|
+
textHeader: '',
|
|
16
|
+
textDescription: '',
|
|
17
|
+
isAnyEmpty: () => this.appChatTheme.bgColorTheme == 'grey' || this.appChatTheme.bgColorThemeOverlaid == 'grey' || this.appChatTheme.bgColorTheme == 'white' || this.appChatTheme.textHeader == '' || this.appChatTheme.textDescription == ''
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
//Assigned as parameter by developer
|
|
21
|
+
static appId = '';
|
|
22
|
+
static clientId = '';
|
|
23
|
+
static clientSecret = '';
|
|
24
|
+
static externalId = '';
|
|
25
|
+
static fullName = '';
|
|
26
|
+
static fcmToken = '';
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppChatStatic","appChatOpened","accessToken","contactId","bundleIdValidation","encryptedUrlParams","initAppChatResult","appChatTheme","bgColorTheme","bgColorThemeOverlaid","fontColor","textHeader","textDescription","isAnyEmpty","appId","clientId","clientSecret","externalId","fullName","fcmToken"],"sourceRoot":"../../../../src","sources":["data/static/index.tsx"],"mappings":"AAAA,OAAO,MAAMA,aAAa,CAAC;EACzB;EACA,OAAOC,aAAa,GAAG,KAAK;;EAE5B;EACA,OAAOC,WAAW,GAAG,EAAE;EACvB,OAAOC,SAAS,GAAG,EAAE;EACrB,OAAOC,kBAAkB,GAAG,EAAE;EAC9B,OAAOC,kBAAkB,GAAG,EAAE;EAC9B,OAAOC,iBAAiB,GAAG,EAAE;EAE7B,OAAOC,YAAY,GAAG;IACpBC,YAAY,EAAE,MAAM;IACpBC,oBAAoB,EAAE,MAAM;IAC5BC,SAAS,EAAE,OAAO;IAClBC,UAAU,EAAE,EAAE;IACdC,eAAe,EAAE,EAAE;IACnBC,UAAU,EAAEA,CAAA,KAAM,IAAI,CAACN,YAAY,CAACC,YAAY,IAAI,MAAM,IAAI,IAAI,CAACD,YAAY,CAACE,oBAAoB,IAAI,MAAM,IAAI,IAAI,CAACF,YAAY,CAACC,YAAY,IAAI,OAAO,IAAI,IAAI,CAACD,YAAY,CAACI,UAAU,IAAI,EAAE,IAAI,IAAI,CAACJ,YAAY,CAACK,eAAe,IAAI;EAC5O,CAAC;;EAED;EACA,OAAOE,KAAK,GAAG,EAAE;EACjB,OAAOC,QAAQ,GAAG,EAAE;EACpB,OAAOC,YAAY,GAAG,EAAE;EACxB,OAAOC,UAAU,GAAG,EAAE;EACtB,OAAOC,QAAQ,GAAG,EAAE;EACpB,OAAOC,QAAQ,GAAG,EAAE;AACtB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import AppChatComponent from "./presentation/component/AppChatComponent";
|
|
2
|
+
import { initAppChat } from "./presentation/initialization";
|
|
3
|
+
import { isAppChatOpened, isAppChatPayload, registerNotification, revokeNotification } from "./presentation/notification";
|
|
4
|
+
export { initAppChat as initMobileChat, isAppChatOpened as isMobileChatOpened, isAppChatPayload as isMobileChatPayload, AppChatComponent as MobileChatComponent, registerNotification as registerMobileChatNotification, revokeNotification as revokeMobileChatNotification };
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AppChatComponent","initAppChat","isAppChatOpened","isAppChatPayload","registerNotification","revokeNotification","initMobileChat","isMobileChatOpened","isMobileChatPayload","MobileChatComponent","registerMobileChatNotification","revokeMobileChatNotification"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,2CAA2C;AACxE,SAASC,WAAW,QAAQ,+BAA+B;AAC3D,SAASC,eAAe,EAAEC,gBAAgB,EAAEC,oBAAoB,EAAEC,kBAAkB,QAAQ,6BAA6B;AACzH,SACEJ,WAAW,IAAIK,cAAc,EAC7BJ,eAAe,IAAIK,kBAAkB,EACrCJ,gBAAgB,IAAIK,mBAAmB,EACvCR,gBAAgB,IAAIS,mBAAmB,EACvCL,oBAAoB,IAAIM,8BAA8B,EACtDL,kBAAkB,IAAIM,4BAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["requireNativeComponent","WebView"],"sourceRoot":"../../../../src","sources":["native/component/WebView.tsx"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;;AAErD;AACA;AACA;AACA;AACA;AACA,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,mBAAmB,CAAC;AAE3D,eAAeC,OAAO"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
2
|
+
const LINKING_ERROR = `The package 'react-native-mobile-chat' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
3
|
+
ios: "- You have run 'pod install'\n",
|
|
4
|
+
default: ''
|
|
5
|
+
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
6
|
+
export const AppChatNative = NativeModules.AppChat ? NativeModules.AppChat : new Proxy({}, {
|
|
7
|
+
get() {
|
|
8
|
+
throw new Error(LINKING_ERROR);
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","AppChatNative","AppChat","Proxy","get","Error"],"sourceRoot":"../../../../src","sources":["native/module/index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GAChB,mFAAkF,GACnFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,OAAO,MAAMC,aAAa,GAAGN,aAAa,CAACO,OAAO,GAC9CP,aAAa,CAACO,OAAO,GACrB,IAAIC,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CACF,CAAC"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
import React, { PureComponent, Fragment } from 'react';
|
|
2
|
+
import { ActivityIndicator, StatusBar, View, Dimensions, Text, TouchableOpacity, Image, PermissionsAndroid, Platform } from 'react-native';
|
|
3
|
+
import { AppChatStatic } from '../../data/static';
|
|
4
|
+
import { initAppChat } from '../../presentation/initialization';
|
|
5
|
+
import WebView from 'react-native-webview';
|
|
6
|
+
import Constant from '../../common/constants';
|
|
7
|
+
import { putString } from '../../data/local';
|
|
8
|
+
import { SafeAreaView } from 'react-native';
|
|
9
|
+
export default class AppChatComponent extends PureComponent {
|
|
10
|
+
_isMounted = false;
|
|
11
|
+
state = {
|
|
12
|
+
isOverlaid: false,
|
|
13
|
+
toggleRefresh: false
|
|
14
|
+
};
|
|
15
|
+
constructor(props) {
|
|
16
|
+
super(props);
|
|
17
|
+
this.state = {
|
|
18
|
+
isOverlaid: false,
|
|
19
|
+
toggleRefresh: false
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
_setState = state => {
|
|
23
|
+
if (this._isMounted) {
|
|
24
|
+
this.setState(state);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
_requestPermission = async permission => {
|
|
28
|
+
if (Platform.OS == 'android') {
|
|
29
|
+
const granted = await PermissionsAndroid.check(permission);
|
|
30
|
+
if (!granted) {
|
|
31
|
+
PermissionsAndroid.request(permission);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
_onAccessTokenExpired = async () => {
|
|
36
|
+
AppChatStatic.initAppChatResult = '';
|
|
37
|
+
AppChatStatic.accessToken = '';
|
|
38
|
+
AppChatStatic.encryptedUrlParams = '';
|
|
39
|
+
await putString('accessToken', 'default_value');
|
|
40
|
+
this._setState({
|
|
41
|
+
toggleRefresh: !this.state.toggleRefresh
|
|
42
|
+
});
|
|
43
|
+
this.componentDidMount();
|
|
44
|
+
};
|
|
45
|
+
_onMessage = event => {
|
|
46
|
+
const data = JSON.parse(event.nativeEvent.data);
|
|
47
|
+
switch (data.key) {
|
|
48
|
+
case 'TOKEN_EXPIRED':
|
|
49
|
+
this._onAccessTokenExpired();
|
|
50
|
+
break;
|
|
51
|
+
case 'OVERLAY':
|
|
52
|
+
this._setState({
|
|
53
|
+
isOverlaid: true
|
|
54
|
+
});
|
|
55
|
+
this._requestPermission('android.permission.CAMERA');
|
|
56
|
+
break;
|
|
57
|
+
case 'REMOVE_OVERLAY':
|
|
58
|
+
this._setState({
|
|
59
|
+
isOverlaid: false
|
|
60
|
+
});
|
|
61
|
+
break;
|
|
62
|
+
case 'CAMERA':
|
|
63
|
+
//this._requestPermission('android.permission.RECORD_AUDIO')
|
|
64
|
+
break;
|
|
65
|
+
case 'GALLERY':
|
|
66
|
+
//this._requestPermission('android.permission.READ_MEDIA_IMAGES')
|
|
67
|
+
//this._requestPermission('android.permission.READ_MEDIA_VIDEO')
|
|
68
|
+
break;
|
|
69
|
+
case 'DOCUMENT':
|
|
70
|
+
//this._requestPermission('android.permission.READ_EXTERNAL_STORAGE')
|
|
71
|
+
break;
|
|
72
|
+
case 'AUDIO':
|
|
73
|
+
//this._requestPermission('android.permission.READ_MEDIA_AUDIO')
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
console.log('onMessage', event.nativeEvent.data);
|
|
79
|
+
};
|
|
80
|
+
componentDidMount() {
|
|
81
|
+
this._isMounted = true;
|
|
82
|
+
AppChatStatic.appChatOpened = true;
|
|
83
|
+
if (AppChatStatic.initAppChatResult === '') {
|
|
84
|
+
setTimeout(() => {
|
|
85
|
+
const {
|
|
86
|
+
appId,
|
|
87
|
+
clientId,
|
|
88
|
+
clientSecret,
|
|
89
|
+
externalId,
|
|
90
|
+
fullName
|
|
91
|
+
} = AppChatStatic;
|
|
92
|
+
initAppChat(appId, clientId, clientSecret, externalId, fullName).then(result => {
|
|
93
|
+
if (result === 'SUCCESS') this._setState({
|
|
94
|
+
toggleRefresh: !this.state.toggleRefresh
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
}, 10000);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
componentWillUnmount() {
|
|
101
|
+
this._isMounted = false;
|
|
102
|
+
AppChatStatic.appChatOpened = false;
|
|
103
|
+
}
|
|
104
|
+
render() {
|
|
105
|
+
const {
|
|
106
|
+
onBackButtonTapped
|
|
107
|
+
} = this.props;
|
|
108
|
+
const {
|
|
109
|
+
initAppChatResult,
|
|
110
|
+
bundleIdValidation
|
|
111
|
+
} = AppChatStatic;
|
|
112
|
+
const {
|
|
113
|
+
bgColorTheme,
|
|
114
|
+
textHeader,
|
|
115
|
+
textDescription,
|
|
116
|
+
fontColor
|
|
117
|
+
} = AppChatStatic.appChatTheme;
|
|
118
|
+
const postMessageListener = `window.addEventListener('message',(event) => window.ReactNativeWebView.postMessage(event.data));let meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0'); document.getElementsByTagName('head')[0].appendChild(meta);`;
|
|
119
|
+
if (initAppChatResult === 'SUCCESS' && bundleIdValidation !== 'success') {
|
|
120
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
121
|
+
style: {
|
|
122
|
+
flex: 1,
|
|
123
|
+
justifyContent: 'center',
|
|
124
|
+
alignItems: 'center'
|
|
125
|
+
}
|
|
126
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
127
|
+
style: {
|
|
128
|
+
textAlign: 'center',
|
|
129
|
+
padding: 16
|
|
130
|
+
}
|
|
131
|
+
}, Constant.BUNDLE_ID_INVALID, " "));
|
|
132
|
+
}
|
|
133
|
+
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
134
|
+
style: {
|
|
135
|
+
flex: 0,
|
|
136
|
+
backgroundColor: this.state.isOverlaid ? AppChatStatic.appChatTheme.bgColorThemeOverlaid : bgColorTheme
|
|
137
|
+
}
|
|
138
|
+
}), /*#__PURE__*/React.createElement(SafeAreaView, {
|
|
139
|
+
style: {
|
|
140
|
+
flex: 1,
|
|
141
|
+
backgroundColor: this.state.isOverlaid ? Constant.WEBVIEW_BACKGROUND_COLOR_OVERLAID : Constant.WEBVIEW_BACKGROUND_COLOR
|
|
142
|
+
}
|
|
143
|
+
}, /*#__PURE__*/React.createElement(StatusBar, {
|
|
144
|
+
barStyle: fontColor === 'black' || this.state.isOverlaid ? 'dark-content' : 'light-content',
|
|
145
|
+
backgroundColor: this.state.isOverlaid ? AppChatStatic.appChatTheme.bgColorThemeOverlaid : bgColorTheme
|
|
146
|
+
}), /*#__PURE__*/React.createElement(View, {
|
|
147
|
+
style: {
|
|
148
|
+
height: 52,
|
|
149
|
+
backgroundColor: bgColorTheme
|
|
150
|
+
}
|
|
151
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
152
|
+
style: {
|
|
153
|
+
position: 'absolute'
|
|
154
|
+
}
|
|
155
|
+
}, /*#__PURE__*/React.createElement(View, {
|
|
156
|
+
style: {
|
|
157
|
+
position: 'absolute',
|
|
158
|
+
top: 0,
|
|
159
|
+
flexDirection: 'row',
|
|
160
|
+
height: 52,
|
|
161
|
+
width: Dimensions.get('screen').width,
|
|
162
|
+
backgroundColor: bgColorTheme
|
|
163
|
+
}
|
|
164
|
+
}, /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
165
|
+
style: {
|
|
166
|
+
width: 52,
|
|
167
|
+
height: 52,
|
|
168
|
+
justifyContent: 'center',
|
|
169
|
+
alignItems: 'center'
|
|
170
|
+
},
|
|
171
|
+
onPress: () => onBackButtonTapped()
|
|
172
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
173
|
+
style: {
|
|
174
|
+
height: 16
|
|
175
|
+
},
|
|
176
|
+
source: fontColor === 'black' ? require('../../assets/images/arrow_left_black.png') : require('../../assets/images/arrow_left.png')
|
|
177
|
+
})), /*#__PURE__*/React.createElement(View, {
|
|
178
|
+
style: {
|
|
179
|
+
height: 52,
|
|
180
|
+
justifyContent: 'center',
|
|
181
|
+
alignItems: 'flex-start'
|
|
182
|
+
}
|
|
183
|
+
}, /*#__PURE__*/React.createElement(Text, {
|
|
184
|
+
style: {
|
|
185
|
+
fontSize: 16,
|
|
186
|
+
color: fontColor,
|
|
187
|
+
fontWeight: '600'
|
|
188
|
+
}
|
|
189
|
+
}, textHeader), /*#__PURE__*/React.createElement(Text, {
|
|
190
|
+
style: {
|
|
191
|
+
fontSize: 12,
|
|
192
|
+
color: fontColor,
|
|
193
|
+
fontWeight: '400'
|
|
194
|
+
}
|
|
195
|
+
}, textDescription))), this.state.isOverlaid && /*#__PURE__*/React.createElement(View, {
|
|
196
|
+
style: {
|
|
197
|
+
position: 'absolute',
|
|
198
|
+
top: 0,
|
|
199
|
+
height: 52,
|
|
200
|
+
width: Dimensions.get('screen').width,
|
|
201
|
+
backgroundColor: 'rgba(35, 41, 51, 0.8)'
|
|
202
|
+
}
|
|
203
|
+
}))), AppChatStatic.initAppChatResult !== 'SUCCESS' && /*#__PURE__*/React.createElement(View, {
|
|
204
|
+
style: {
|
|
205
|
+
flex: 1,
|
|
206
|
+
justifyContent: 'center',
|
|
207
|
+
alignItems: 'center'
|
|
208
|
+
}
|
|
209
|
+
}, /*#__PURE__*/React.createElement(ActivityIndicator, {
|
|
210
|
+
size: "large"
|
|
211
|
+
})), AppChatStatic.initAppChatResult === 'SUCCESS' && /*#__PURE__*/React.createElement(WebView, {
|
|
212
|
+
bounces: false,
|
|
213
|
+
overScrollMode: "never",
|
|
214
|
+
setBuiltInZoomControls: false,
|
|
215
|
+
injectedJavaScriptBeforeContentLoaded: postMessageListener,
|
|
216
|
+
source: {
|
|
217
|
+
uri: `${Constant.BASE_URL_WEBVIEW}${Constant.ENCRYPTED_PARAMS_KEY}${AppChatStatic.encryptedUrlParams}`
|
|
218
|
+
},
|
|
219
|
+
onMessage: this._onMessage,
|
|
220
|
+
style: {
|
|
221
|
+
flex: 1,
|
|
222
|
+
backgroundColor: this.state.isOverlaid ? Constant.WEBVIEW_BACKGROUND_COLOR_OVERLAID : Constant.WEBVIEW_BACKGROUND_COLOR
|
|
223
|
+
}
|
|
224
|
+
})));
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=AppChatComponent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","PureComponent","Fragment","ActivityIndicator","StatusBar","View","Dimensions","Text","TouchableOpacity","Image","PermissionsAndroid","Platform","AppChatStatic","initAppChat","WebView","Constant","putString","SafeAreaView","AppChatComponent","_isMounted","state","isOverlaid","toggleRefresh","constructor","props","_setState","setState","_requestPermission","permission","OS","granted","check","request","_onAccessTokenExpired","initAppChatResult","accessToken","encryptedUrlParams","componentDidMount","_onMessage","event","data","JSON","parse","nativeEvent","key","console","log","appChatOpened","setTimeout","appId","clientId","clientSecret","externalId","fullName","then","result","componentWillUnmount","render","onBackButtonTapped","bundleIdValidation","bgColorTheme","textHeader","textDescription","fontColor","appChatTheme","postMessageListener","createElement","style","flex","justifyContent","alignItems","textAlign","padding","BUNDLE_ID_INVALID","backgroundColor","bgColorThemeOverlaid","WEBVIEW_BACKGROUND_COLOR_OVERLAID","WEBVIEW_BACKGROUND_COLOR","barStyle","height","position","top","flexDirection","width","get","onPress","source","require","fontSize","color","fontWeight","size","bounces","overScrollMode","setBuiltInZoomControls","injectedJavaScriptBeforeContentLoaded","uri","BASE_URL_WEBVIEW","ENCRYPTED_PARAMS_KEY","onMessage"],"sourceRoot":"../../../../src","sources":["presentation/component/AppChatComponent.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { getBundleIdOrPackageName, getString, putString } from "../../data/local";
|
|
2
|
+
import { authenticate, createContact, getWidgetSetting, registerFcmToken, validateBundleId } from "../../data/remote";
|
|
3
|
+
import { AppChatStatic } from "../../data/static";
|
|
4
|
+
import { calculateTextColorOutput, getEncryptedUrlParams, getOverlaidColor } from '../../common/utils';
|
|
5
|
+
import Constant from "../../common/constants";
|
|
6
|
+
export async function initAppChat(appId, clientId, clientSecret, externalId, fullName) {
|
|
7
|
+
AppChatStatic.appId = appId;
|
|
8
|
+
AppChatStatic.clientId = clientId;
|
|
9
|
+
AppChatStatic.clientSecret = clientSecret;
|
|
10
|
+
AppChatStatic.externalId = externalId;
|
|
11
|
+
AppChatStatic.fullName = fullName;
|
|
12
|
+
|
|
13
|
+
//is client app re-login?
|
|
14
|
+
const currentExternalId = await getString('externalId');
|
|
15
|
+
if (currentExternalId !== externalId) {
|
|
16
|
+
AppChatStatic.accessToken = '';
|
|
17
|
+
AppChatStatic.contactId = '';
|
|
18
|
+
AppChatStatic.bundleIdValidation = '';
|
|
19
|
+
AppChatStatic.encryptedUrlParams = '';
|
|
20
|
+
AppChatStatic.initAppChatResult = '';
|
|
21
|
+
AppChatStatic.appChatTheme.bgColorTheme = 'grey';
|
|
22
|
+
AppChatStatic.appChatTheme.fontColor = 'white';
|
|
23
|
+
AppChatStatic.appChatTheme.textHeader = '';
|
|
24
|
+
AppChatStatic.appChatTheme.textDescription = '';
|
|
25
|
+
AppChatStatic.fcmToken = '';
|
|
26
|
+
await putString('accessToken', 'default_value');
|
|
27
|
+
await putString('fcmToken', 'default_value');
|
|
28
|
+
await putString('contactId', 'default_value');
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
//Authentication - accessToken
|
|
32
|
+
const accessToken = AppChatStatic.accessToken == '' ? await updateAccessToken(clientId, clientSecret) : AppChatStatic.accessToken;
|
|
33
|
+
|
|
34
|
+
//Create Contact - contactId
|
|
35
|
+
const contactId = AppChatStatic.contactId == '' ? await updateContactId(externalId, fullName) : AppChatStatic.contactId;
|
|
36
|
+
|
|
37
|
+
//Validate Bundle ID or Package Name - bundleIdValidation
|
|
38
|
+
const bundleIdValidation = AppChatStatic.bundleIdValidation !== 'success' ? await validateBundleIdOrPackageName() : AppChatStatic.bundleIdValidation;
|
|
39
|
+
|
|
40
|
+
//Encrypt URL Params - encryptedUrlParams
|
|
41
|
+
const encryptedUrlParams = AppChatStatic.encryptedUrlParams == '' ? updateEncryptedUrlParams() : AppChatStatic.encryptedUrlParams;
|
|
42
|
+
|
|
43
|
+
//Get theme - appChatTheme
|
|
44
|
+
AppChatStatic.appChatTheme.isAnyEmpty() ? await updateAppChatTheme() : AppChatStatic.appChatTheme;
|
|
45
|
+
|
|
46
|
+
//Register notif
|
|
47
|
+
if (AppChatStatic.fcmToken != '') {
|
|
48
|
+
const response = await registerFcmToken(AppChatStatic.fcmToken);
|
|
49
|
+
if (response.ok) {
|
|
50
|
+
await putString('fcmToken', AppChatStatic.fcmToken);
|
|
51
|
+
console.log("FCM token registration success, user can receive notification");
|
|
52
|
+
} else {
|
|
53
|
+
console.log("FCM token registration failed, user can't receive notification");
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//Save result- initAppChatResult
|
|
58
|
+
if (accessToken != '' && contactId != '' && bundleIdValidation != '' && encryptedUrlParams != '' && !AppChatStatic.appChatTheme.isAnyEmpty()) AppChatStatic.initAppChatResult = 'SUCCESS';else AppChatStatic.initAppChatResult = 'FAILED';
|
|
59
|
+
if (AppChatStatic.initAppChatResult === 'SUCCESS') await putString('externalId', externalId);
|
|
60
|
+
return AppChatStatic.initAppChatResult;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
return JSON.stringify(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function updateAccessToken(clientId, clientSecret) {
|
|
66
|
+
const accessToken = await getString('accessToken');
|
|
67
|
+
if (accessToken) {
|
|
68
|
+
AppChatStatic.accessToken = accessToken;
|
|
69
|
+
} else {
|
|
70
|
+
const authResponse = await authenticate(clientId, clientSecret);
|
|
71
|
+
const authData = await authResponse.json();
|
|
72
|
+
if (!authResponse.ok) return authResponse.status;
|
|
73
|
+
AppChatStatic.accessToken = authData['access_token'];
|
|
74
|
+
await putString('accessToken', AppChatStatic.accessToken);
|
|
75
|
+
}
|
|
76
|
+
return AppChatStatic.accessToken;
|
|
77
|
+
}
|
|
78
|
+
async function updateContactId(externalId, fullName) {
|
|
79
|
+
const contactId = await getString('contactId');
|
|
80
|
+
if (contactId) {
|
|
81
|
+
AppChatStatic.contactId = contactId;
|
|
82
|
+
} else {
|
|
83
|
+
const createContactResponse = await createContact(externalId, fullName);
|
|
84
|
+
if (!createContactResponse.ok) return createContactResponse.status;
|
|
85
|
+
const createContactData = await createContactResponse.json();
|
|
86
|
+
AppChatStatic.contactId = createContactData.data['id'];
|
|
87
|
+
await putString('contactId', AppChatStatic.contactId);
|
|
88
|
+
}
|
|
89
|
+
return AppChatStatic.contactId;
|
|
90
|
+
}
|
|
91
|
+
async function validateBundleIdOrPackageName() {
|
|
92
|
+
const bundleIdValidation = await getString('bundleIdValidation');
|
|
93
|
+
let errorCode = undefined;
|
|
94
|
+
let errorMessage = undefined;
|
|
95
|
+
if (bundleIdValidation != 'success') {
|
|
96
|
+
const bundleId = await getBundleIdOrPackageName();
|
|
97
|
+
if (bundleId) {
|
|
98
|
+
const validateBundleIdResponse = await validateBundleId(bundleId);
|
|
99
|
+
const validateBundleIdData = await validateBundleIdResponse.json();
|
|
100
|
+
if (validateBundleIdResponse.ok) {
|
|
101
|
+
var _validateBundleIdData;
|
|
102
|
+
AppChatStatic.bundleIdValidation = (validateBundleIdData === null || validateBundleIdData === void 0 || (_validateBundleIdData = validateBundleIdData.data) === null || _validateBundleIdData === void 0 ? void 0 : _validateBundleIdData.status) === 'success' ? 'success' : 'failed';
|
|
103
|
+
if (AppChatStatic.bundleIdValidation == 'success') await putString('bundleIdValidation', 'success');
|
|
104
|
+
} else {
|
|
105
|
+
var _validateBundleIdData2;
|
|
106
|
+
errorCode = validateBundleIdResponse.status;
|
|
107
|
+
errorMessage = validateBundleIdData === null || validateBundleIdData === void 0 || (_validateBundleIdData2 = validateBundleIdData.error) === null || _validateBundleIdData2 === void 0 ? void 0 : _validateBundleIdData2.messages[0];
|
|
108
|
+
AppChatStatic.bundleIdValidation = 'failed';
|
|
109
|
+
}
|
|
110
|
+
} else {
|
|
111
|
+
AppChatStatic.bundleIdValidation = 'not available';
|
|
112
|
+
}
|
|
113
|
+
} else {
|
|
114
|
+
AppChatStatic.bundleIdValidation = bundleIdValidation;
|
|
115
|
+
}
|
|
116
|
+
if (AppChatStatic.bundleIdValidation != 'success' && AppChatStatic.bundleIdValidation != '') {
|
|
117
|
+
console.log(`${Constant.BUNDLE_ID_INVALID}\n${errorCode ?? ''} ${errorMessage ?? ''}`);
|
|
118
|
+
}
|
|
119
|
+
return AppChatStatic.bundleIdValidation;
|
|
120
|
+
}
|
|
121
|
+
function updateEncryptedUrlParams() {
|
|
122
|
+
AppChatStatic.encryptedUrlParams = getEncryptedUrlParams({
|
|
123
|
+
access_token: AppChatStatic.accessToken,
|
|
124
|
+
app_id: AppChatStatic.appId,
|
|
125
|
+
contact_id: AppChatStatic.contactId
|
|
126
|
+
});
|
|
127
|
+
return AppChatStatic.encryptedUrlParams;
|
|
128
|
+
}
|
|
129
|
+
async function updateAppChatTheme() {
|
|
130
|
+
var _await$response$json, _data$style, _data$header, _data$description;
|
|
131
|
+
const response = await getWidgetSetting();
|
|
132
|
+
const data = (_await$response$json = await response.json()) === null || _await$response$json === void 0 ? void 0 : _await$response$json.data;
|
|
133
|
+
if (!response.ok) return response.status;
|
|
134
|
+
AppChatStatic.appChatTheme.bgColorTheme = (_data$style = data.style) === null || _data$style === void 0 || (_data$style = _data$style.theme) === null || _data$style === void 0 ? void 0 : _data$style.bg_color;
|
|
135
|
+
AppChatStatic.appChatTheme.bgColorThemeOverlaid = getOverlaidColor(AppChatStatic.appChatTheme.bgColorTheme, Constant.OVERLAY_COLOR, Constant.OVERLAY_OPACITY);
|
|
136
|
+
AppChatStatic.appChatTheme.fontColor = calculateTextColorOutput(AppChatStatic.appChatTheme.bgColorTheme);
|
|
137
|
+
AppChatStatic.appChatTheme.textHeader = (_data$header = data.header) === null || _data$header === void 0 ? void 0 : _data$header.text;
|
|
138
|
+
AppChatStatic.appChatTheme.textDescription = (_data$description = data.description) === null || _data$description === void 0 ? void 0 : _data$description.text;
|
|
139
|
+
return AppChatStatic.appChatTheme;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getBundleIdOrPackageName","getString","putString","authenticate","createContact","getWidgetSetting","registerFcmToken","validateBundleId","AppChatStatic","calculateTextColorOutput","getEncryptedUrlParams","getOverlaidColor","Constant","initAppChat","appId","clientId","clientSecret","externalId","fullName","currentExternalId","accessToken","contactId","bundleIdValidation","encryptedUrlParams","initAppChatResult","appChatTheme","bgColorTheme","fontColor","textHeader","textDescription","fcmToken","updateAccessToken","updateContactId","validateBundleIdOrPackageName","updateEncryptedUrlParams","isAnyEmpty","updateAppChatTheme","response","ok","console","log","error","JSON","stringify","authResponse","authData","json","status","createContactResponse","createContactData","data","errorCode","undefined","errorMessage","bundleId","validateBundleIdResponse","validateBundleIdData","_validateBundleIdData","_validateBundleIdData2","messages","BUNDLE_ID_INVALID","access_token","app_id","contact_id","_await$response$json","_data$style","_data$header","_data$description","style","theme","bg_color","bgColorThemeOverlaid","OVERLAY_COLOR","OVERLAY_OPACITY","header","text","description"],"sourceRoot":"../../../../src","sources":["presentation/initialization/index.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getString, putString } from "../../data/local";
|
|
2
|
+
import { registerFcmToken, revokeFcmToken } from "../../data/remote";
|
|
3
|
+
import { AppChatStatic } from "../../data/static";
|
|
4
|
+
export async function registerNotification(fcmToken) {
|
|
5
|
+
const localFcmToken = await getString('fcmToken');
|
|
6
|
+
if (fcmToken === localFcmToken) return;
|
|
7
|
+
if (AppChatStatic.initAppChatResult !== 'success') {
|
|
8
|
+
AppChatStatic.fcmToken = fcmToken;
|
|
9
|
+
return "FCM token registration : waiting initialization success";
|
|
10
|
+
} else {
|
|
11
|
+
const response = await registerFcmToken(fcmToken);
|
|
12
|
+
if (response.ok) {
|
|
13
|
+
await putString('fcmToken', fcmToken);
|
|
14
|
+
return "FCM token registration success, user can receive notification";
|
|
15
|
+
} else {
|
|
16
|
+
return "FCM token registration failed, user can't receive notification";
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
export async function revokeNotification() {
|
|
21
|
+
const localFcmToken = await getString('fcmToken');
|
|
22
|
+
if (localFcmToken == null) return;
|
|
23
|
+
const response = await revokeFcmToken(localFcmToken);
|
|
24
|
+
if (response.ok) {
|
|
25
|
+
AppChatStatic.fcmToken = '';
|
|
26
|
+
return "Revoke FCM token success";
|
|
27
|
+
} else {
|
|
28
|
+
return "Revoke FCM token failed";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
export function isAppChatPayload(payload) {
|
|
32
|
+
if ((payload === null || payload === void 0 ? void 0 : payload.data) == null) {
|
|
33
|
+
return false;
|
|
34
|
+
} else {
|
|
35
|
+
return payload.data['notification_source'] == 'app-chat-qontak';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function isAppChatOpened() {
|
|
39
|
+
return AppChatStatic.appChatOpened;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getString","putString","registerFcmToken","revokeFcmToken","AppChatStatic","registerNotification","fcmToken","localFcmToken","initAppChatResult","response","ok","revokeNotification","isAppChatPayload","payload","data","isAppChatOpened","appChatOpened"],"sourceRoot":"../../../../src","sources":["presentation/notification/index.tsx"],"mappings":"AAAA,SAASA,SAAS,EAAEC,SAAS,QAAQ,kBAAkB;AACvD,SAASC,gBAAgB,EAAEC,cAAc,QAAQ,mBAAmB;AACpE,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,OAAO,eAAeC,oBAAoBA,CAACC,QAAgB,EAAE;EAC3D,MAAMC,aAAa,GAAG,MAAMP,SAAS,CAAC,UAAU,CAAC;EACjD,IAAIM,QAAQ,KAAKC,aAAa,EAAE;EAChC,IAAIH,aAAa,CAACI,iBAAiB,KAAK,SAAS,EAAE;IACjDJ,aAAa,CAACE,QAAQ,GAAGA,QAAQ;IACjC,OAAO,yDAAyD;EAClE,CAAC,MAAM;IACL,MAAMG,QAAQ,GAAG,MAAMP,gBAAgB,CAACI,QAAQ,CAAC;IACjD,IAAIG,QAAQ,CAACC,EAAE,EAAE;MACf,MAAMT,SAAS,CAAC,UAAU,EAAEK,QAAQ,CAAC;MACrC,OAAO,+DAA+D;IACxE,CAAC,MAAM;MACL,OAAO,gEAAgE;IACzE;EACF;AACF;AAEA,OAAO,eAAeK,kBAAkBA,CAAA,EAAG;EACzC,MAAMJ,aAAa,GAAG,MAAMP,SAAS,CAAC,UAAU,CAAC;EACjD,IAAIO,aAAa,IAAI,IAAI,EAAE;EAC3B,MAAME,QAAQ,GAAG,MAAMN,cAAc,CAACI,aAAa,CAAC;EACpD,IAAIE,QAAQ,CAACC,EAAE,EAAE;IACfN,aAAa,CAACE,QAAQ,GAAG,EAAE;IAC3B,OAAO,0BAA0B;EACnC,CAAC,MACI;IACH,OAAO,yBAAyB;EAClC;AACF;AAEA,OAAO,SAASM,gBAAgBA,CAACC,OAAY,EAAW;EACtD,IAAI,CAAAA,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEC,IAAI,KAAI,IAAI,EAAE;IACzB,OAAO,KAAK;EACd,CAAC,MAAM;IACL,OAAOD,OAAO,CAACC,IAAI,CAAC,qBAAqB,CAAC,IAAI,iBAAiB;EACjE;AACF;AAEA,OAAO,SAASC,eAAeA,CAAA,EAAY;EACzC,OAAOX,aAAa,CAACY,aAAa;AACpC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export default class Constant {
|
|
2
|
+
static BASE_URL: string;
|
|
3
|
+
static ENCRYPTION_KEY: string;
|
|
4
|
+
static ENCRYPTION_IV: string;
|
|
5
|
+
static BASE_URL_WEBVIEW: string;
|
|
6
|
+
static ENCRYPTED_PARAMS_KEY: string;
|
|
7
|
+
static BUNDLE_ID_INVALID: string;
|
|
8
|
+
static WEBVIEW_BACKGROUND_COLOR: string;
|
|
9
|
+
static WEBVIEW_BACKGROUND_COLOR_OVERLAID: string;
|
|
10
|
+
static OVERLAY_COLOR: string;
|
|
11
|
+
static OVERLAY_OPACITY: number;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/common/constants/index.tsx"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B,MAAM,CAAC,QAAQ,SAAoC;IACnD,MAAM,CAAC,cAAc,SAAqB;IAC1C,MAAM,CAAC,aAAa,SAAqB;IACzC,MAAM,CAAC,gBAAgB,SAAmC;IAC1D,MAAM,CAAC,oBAAoB,SAAW;IACtC,MAAM,CAAC,iBAAiB,SAAqH;IAC7I,MAAM,CAAC,wBAAwB,SAAY;IAC3C,MAAM,CAAC,iCAAiC,SAAY;IACpD,MAAM,CAAC,aAAa,SAAY;IAChC,MAAM,CAAC,eAAe,SAAM;CAC7B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
type URLParamsAppChat = {
|
|
2
|
+
access_token: string;
|
|
3
|
+
app_id: string;
|
|
4
|
+
contact_id: string;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* It takes a JSON object, converts it to a string, encrypts it, and returns the encrypted string
|
|
8
|
+
* @param data - The data to be encrypted.
|
|
9
|
+
* @returns A string of hexadecimal characters.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getEncryptedUrlParams(data: URLParamsAppChat): string;
|
|
12
|
+
export declare function calculateTextColorOutput(mainColor: string): string;
|
|
13
|
+
export declare function getOverlaidColor(mainColor: string, colorOverlay: string, opacityOverlay: number): string;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|