@botonic/react 0.35.0-alpha.1 → 0.35.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/lib/cjs/components/message/message-feedback.js +8 -19
- package/lib/cjs/components/message/message-feedback.js.map +1 -1
- package/lib/cjs/webchat/tracking.d.ts +10 -0
- package/lib/cjs/webchat/tracking.js +39 -1
- package/lib/cjs/webchat/tracking.js.map +1 -1
- package/lib/cjs/webchat.template.html +2 -43
- package/lib/esm/components/message/message-feedback.js +9 -20
- package/lib/esm/components/message/message-feedback.js.map +1 -1
- package/lib/esm/webchat/tracking.d.ts +10 -0
- package/lib/esm/webchat/tracking.js +37 -0
- package/lib/esm/webchat/tracking.js.map +1 -1
- package/lib/esm/webchat.template.html +2 -43
- package/package.json +3 -3
- package/src/components/message/message-feedback.tsx +9 -26
- package/src/webchat/tracking.ts +59 -0
- package/src/webchat.template.html +2 -43
|
@@ -4,7 +4,6 @@ exports.MessageFeedback = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
6
6
|
const react_1 = require("react");
|
|
7
|
-
const uuid_1 = require("uuid");
|
|
8
7
|
const thumbs_down_svg_1 = tslib_1.__importDefault(require("../../assets/thumbs-down.svg"));
|
|
9
8
|
const thumbs_up_svg_1 = tslib_1.__importDefault(require("../../assets/thumbs-up.svg"));
|
|
10
9
|
const util_1 = require("../../util");
|
|
@@ -12,7 +11,8 @@ const context_1 = require("../../webchat/context");
|
|
|
12
11
|
const tracking_1 = require("../../webchat/tracking");
|
|
13
12
|
const styles_1 = require("./styles");
|
|
14
13
|
const MessageFeedback = ({ botInteractionId, inferenceId, messageId, }) => {
|
|
15
|
-
const { webchatState, updateMessage
|
|
14
|
+
const { webchatState, updateMessage } = (0, react_1.useContext)(context_1.WebchatContext);
|
|
15
|
+
const { trackKnowledgebaseFeedback } = (0, tracking_1.useTracking)();
|
|
16
16
|
const [className, setClassName] = (0, react_1.useState)('');
|
|
17
17
|
const [disabled, setDisabled] = (0, react_1.useState)({
|
|
18
18
|
positive: false,
|
|
@@ -33,29 +33,18 @@ const MessageFeedback = ({ botInteractionId, inferenceId, messageId, }) => {
|
|
|
33
33
|
}
|
|
34
34
|
}, [disabled]);
|
|
35
35
|
const handleClick = (isUseful) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
36
|
-
if (!trackEvent) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
36
|
if (isUseful) {
|
|
40
37
|
setDisabled({ positive: false, negative: true });
|
|
41
38
|
}
|
|
42
39
|
else {
|
|
43
40
|
setDisabled({ positive: true, negative: false });
|
|
44
41
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
possibleValues: [0, 1],
|
|
52
|
-
option: isUseful ? tracking_1.FeedbackOption.ThumbsUp : tracking_1.FeedbackOption.ThumbsDown,
|
|
53
|
-
value: isUseful ? 1 : 0,
|
|
54
|
-
};
|
|
55
|
-
const request = {
|
|
56
|
-
session: Object.assign({}, webchatState.session),
|
|
57
|
-
};
|
|
58
|
-
yield trackEvent(request, tracking_1.EventAction.FeedbackKnowledgebase, args);
|
|
42
|
+
yield trackKnowledgebaseFeedback({
|
|
43
|
+
messageId,
|
|
44
|
+
isUseful,
|
|
45
|
+
botInteractionId,
|
|
46
|
+
inferenceId,
|
|
47
|
+
});
|
|
59
48
|
});
|
|
60
49
|
return ((0, jsx_runtime_1.jsxs)(styles_1.FeedbackMessageContainer, { children: [(0, jsx_runtime_1.jsx)(styles_1.FeedbackButton, Object.assign({ className: className, disabled: disabled.positive, onClick: () => handleClick(true) }, { children: (0, jsx_runtime_1.jsx)("img", { src: (0, util_1.resolveImage)(thumbs_up_svg_1.default) }) })), (0, jsx_runtime_1.jsx)(styles_1.FeedbackButton, Object.assign({ className: className, disabled: disabled.negative, onClick: () => handleClick(false) }, { children: (0, jsx_runtime_1.jsx)("img", { src: (0, util_1.resolveImage)(thumbs_down_svg_1.default) }) }))] }));
|
|
61
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;;;;AAAA,iCAA8D;
|
|
1
|
+
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;;;;AAAA,iCAA8D;AAE9D,2FAAqD;AACrD,uFAAiD;AACjD,qCAAyC;AACzC,mDAAsD;AACtD,qDAAoD;AACpD,qCAAmE;AAa5D,MAAM,eAAe,GAAG,CAAC,EAC9B,gBAAgB,EAChB,WAAW,EACX,SAAS,GACG,EAAE,EAAE;IAChB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IAClE,MAAM,EAAE,0BAA0B,EAAE,GAAG,IAAA,sBAAW,GAAE,CAAA;IAEpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAAe;QACrD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,CAAC,eAAwB,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CACpC,CAAA;QACD,MAAM,UAAU,mCACX,OAAO,KACV,eAAe,GAChB,CAAA;QACD,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC1C,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,qBAAqB,CAAC,KAAK,CAAC,CAAA;SAC7B;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,WAAW,GAAG,CAAO,QAAiB,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE;YACZ,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;SACjD;aAAM;YACL,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;SACjD;QAED,MAAM,0BAA0B,CAAC;YAC/B,SAAS;YACT,QAAQ;YACR,gBAAgB;YAChB,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;IAED,OAAO,CACL,wBAAC,iCAAwB,eACvB,uBAAC,uBAAc,kBACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,gBAEhC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,uBAAQ,CAAC,GAAI,IACrB,EACjB,uBAAC,uBAAc,kBACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,gBAEjC,gCAAK,GAAG,EAAE,IAAA,mBAAY,EAAC,yBAAU,CAAC,GAAI,IACvB,IACQ,CAC5B,CAAA;AACH,CAAC,CAAA;AArEY,QAAA,eAAe,mBAqE3B"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
export declare enum EventAction {
|
|
2
2
|
FeedbackKnowledgebase = "feedback_knowledgebase"
|
|
3
3
|
}
|
|
4
|
+
interface TrackKnowledgebaseFeedbackArgs {
|
|
5
|
+
messageId: string;
|
|
6
|
+
isUseful: boolean;
|
|
7
|
+
botInteractionId?: string;
|
|
8
|
+
inferenceId?: string;
|
|
9
|
+
}
|
|
4
10
|
export declare enum FeedbackOption {
|
|
5
11
|
ThumbsUp = "thumbsUp",
|
|
6
12
|
ThumbsDown = "thumbsDown"
|
|
7
13
|
}
|
|
14
|
+
export declare function useTracking(): {
|
|
15
|
+
trackKnowledgebaseFeedback: ({ messageId, isUseful, botInteractionId, inferenceId, }: TrackKnowledgebaseFeedbackArgs) => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FeedbackOption = exports.EventAction = void 0;
|
|
3
|
+
exports.useTracking = exports.FeedbackOption = exports.EventAction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const uuid_1 = require("uuid");
|
|
7
|
+
const context_1 = require("./context");
|
|
4
8
|
var EventAction;
|
|
5
9
|
(function (EventAction) {
|
|
6
10
|
EventAction["FeedbackKnowledgebase"] = "feedback_knowledgebase";
|
|
@@ -10,4 +14,38 @@ var FeedbackOption;
|
|
|
10
14
|
FeedbackOption["ThumbsUp"] = "thumbsUp";
|
|
11
15
|
FeedbackOption["ThumbsDown"] = "thumbsDown";
|
|
12
16
|
})(FeedbackOption = exports.FeedbackOption || (exports.FeedbackOption = {}));
|
|
17
|
+
function useTracking() {
|
|
18
|
+
const { webchatState, trackEvent } = (0, react_1.useContext)(context_1.WebchatContext);
|
|
19
|
+
const getRequest = () => {
|
|
20
|
+
const request = {
|
|
21
|
+
session: Object.assign({}, webchatState.session),
|
|
22
|
+
getUserCountry: () => { var _a; return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.country) || ''; },
|
|
23
|
+
getUserLocale: () => { var _a; return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.locale) || ''; },
|
|
24
|
+
getSystemLocale: () => {
|
|
25
|
+
var _a;
|
|
26
|
+
return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.system_locale) || '';
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
return request;
|
|
30
|
+
};
|
|
31
|
+
const trackKnowledgebaseFeedback = ({ messageId, isUseful, botInteractionId, inferenceId, }) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
32
|
+
if (!trackEvent) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const args = {
|
|
36
|
+
knowledgebaseInferenceId: inferenceId,
|
|
37
|
+
feedbackBotInteractionId: botInteractionId,
|
|
38
|
+
feedbackTargetId: messageId,
|
|
39
|
+
feedbackGroupId: (0, uuid_1.v7)(),
|
|
40
|
+
possibleOptions: [FeedbackOption.ThumbsDown, FeedbackOption.ThumbsUp],
|
|
41
|
+
possibleValues: [0, 1],
|
|
42
|
+
option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
|
|
43
|
+
value: isUseful ? 1 : 0,
|
|
44
|
+
};
|
|
45
|
+
const request = getRequest();
|
|
46
|
+
yield trackEvent(request, EventAction.FeedbackKnowledgebase, args);
|
|
47
|
+
});
|
|
48
|
+
return { trackKnowledgebaseFeedback };
|
|
49
|
+
}
|
|
50
|
+
exports.useTracking = useTracking;
|
|
13
51
|
//# sourceMappingURL=tracking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":";;;;AAAA,iCAAkC;AAClC,+BAAmC;AAGnC,uCAA0C;AAE1C,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,+DAAgD,CAAA;AAClD,CAAC,EAFW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAEtB;AAQD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAGzB;AAED,SAAgB,WAAW;IACzB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,IAAA,kBAAU,EAAC,wBAAc,CAAC,CAAA;IAE/D,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG;YACd,OAAO,oBACF,YAAY,CAAC,OAAO,CACxB;YACD,cAAc,EAAE,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAA,EAAA;YAC9D,aAAa,EAAE,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE,CAAA,EAAA;YAC5D,eAAe,EAAE,GAAG,EAAE;;gBACpB,OAAO,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,aAAa,KAAI,EAAE,CAAA;YACvD,CAAC;SAC0B,CAAA;QAE7B,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,CAAO,EACxC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,WAAW,GACoB,EAAE,EAAE;QACnC,IAAI,CAAC,UAAU,EAAE;YACf,OAAM;SACP;QAED,MAAM,IAAI,GAAG;YACX,wBAAwB,EAAE,WAAW;YACrC,wBAAwB,EAAE,gBAAgB;YAC1C,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,IAAA,SAAM,GAAE;YACzB,eAAe,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;YACrE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU;YACtE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAA;QAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;QAE5B,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC,CAAA,CAAA;IAED,OAAO,EAAE,0BAA0B,EAAE,CAAA;AACvC,CAAC;AA7CD,kCA6CC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!DOCTYPE html>
|
|
2
2
|
<html lang="en-US">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
@@ -28,50 +28,9 @@
|
|
|
28
28
|
</style>
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
|
31
|
-
<div id="webchatRoot"></div>
|
|
32
31
|
<script type="text/javascript">
|
|
33
32
|
document.addEventListener('DOMContentLoaded', function (event) {
|
|
34
|
-
Botonic.render(
|
|
35
|
-
onInit: async app => {
|
|
36
|
-
const urlParams = new URLSearchParams(location.search)
|
|
37
|
-
const userLocale = urlParams.get('userLocale')
|
|
38
|
-
const userCountry = urlParams.get('userCountry')
|
|
39
|
-
const systemLocale = urlParams.get('systemLocale')
|
|
40
|
-
|
|
41
|
-
// app.setSystemLocale(systemLocale)
|
|
42
|
-
// app.setUserLocale(userLocale)
|
|
43
|
-
// app.setUserCountry(userCountry)
|
|
44
|
-
|
|
45
|
-
const extraLanguage = urlParams.get('extraLanguage')
|
|
46
|
-
const extraCountry = urlParams.get('extraCountry')
|
|
47
|
-
|
|
48
|
-
console.log('systemLocale', systemLocale)
|
|
49
|
-
console.log('userLocale', userLocale)
|
|
50
|
-
console.log('userCountry', userCountry)
|
|
51
|
-
console.log('extraLanguage', extraLanguage)
|
|
52
|
-
console.log('extraCountry', extraCountry)
|
|
53
|
-
|
|
54
|
-
app.updateUser({
|
|
55
|
-
country: userCountry,
|
|
56
|
-
locale: userLocale,
|
|
57
|
-
system_locale: systemLocale,
|
|
58
|
-
extra_data: {
|
|
59
|
-
country: extraCountry,
|
|
60
|
-
language: extraLanguage,
|
|
61
|
-
},
|
|
62
|
-
})
|
|
63
|
-
await window.botonicOnInit(app)
|
|
64
|
-
},
|
|
65
|
-
onOpen: async app => {
|
|
66
|
-
await window.botonicOnOpen(app)
|
|
67
|
-
},
|
|
68
|
-
onClose: async app => {
|
|
69
|
-
await window.botonicOnClose(app)
|
|
70
|
-
},
|
|
71
|
-
onMessage: async (app, message) => {
|
|
72
|
-
await window.botonicOnMessage(app, message)
|
|
73
|
-
},
|
|
74
|
-
})
|
|
33
|
+
Botonic.render()
|
|
75
34
|
})
|
|
76
35
|
</script>
|
|
77
36
|
</body>
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __awaiter } from "tslib";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useContext, useEffect, useState } from 'react';
|
|
4
|
-
import { v7 as uuidv7 } from 'uuid';
|
|
5
4
|
import ThumbsDown from '../../assets/thumbs-down.svg';
|
|
6
5
|
import ThumbsUp from '../../assets/thumbs-up.svg';
|
|
7
6
|
import { resolveImage } from '../../util';
|
|
8
7
|
import { WebchatContext } from '../../webchat/context';
|
|
9
|
-
import {
|
|
8
|
+
import { useTracking } from '../../webchat/tracking';
|
|
10
9
|
import { FeedbackButton, FeedbackMessageContainer } from './styles';
|
|
11
10
|
export const MessageFeedback = ({ botInteractionId, inferenceId, messageId, }) => {
|
|
12
|
-
const { webchatState, updateMessage
|
|
11
|
+
const { webchatState, updateMessage } = useContext(WebchatContext);
|
|
12
|
+
const { trackKnowledgebaseFeedback } = useTracking();
|
|
13
13
|
const [className, setClassName] = useState('');
|
|
14
14
|
const [disabled, setDisabled] = useState({
|
|
15
15
|
positive: false,
|
|
@@ -30,29 +30,18 @@ export const MessageFeedback = ({ botInteractionId, inferenceId, messageId, }) =
|
|
|
30
30
|
}
|
|
31
31
|
}, [disabled]);
|
|
32
32
|
const handleClick = (isUseful) => __awaiter(void 0, void 0, void 0, function* () {
|
|
33
|
-
if (!trackEvent) {
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
33
|
if (isUseful) {
|
|
37
34
|
setDisabled({ positive: false, negative: true });
|
|
38
35
|
}
|
|
39
36
|
else {
|
|
40
37
|
setDisabled({ positive: true, negative: false });
|
|
41
38
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
possibleValues: [0, 1],
|
|
49
|
-
option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
|
|
50
|
-
value: isUseful ? 1 : 0,
|
|
51
|
-
};
|
|
52
|
-
const request = {
|
|
53
|
-
session: Object.assign({}, webchatState.session),
|
|
54
|
-
};
|
|
55
|
-
yield trackEvent(request, EventAction.FeedbackKnowledgebase, args);
|
|
39
|
+
yield trackKnowledgebaseFeedback({
|
|
40
|
+
messageId,
|
|
41
|
+
isUseful,
|
|
42
|
+
botInteractionId,
|
|
43
|
+
inferenceId,
|
|
44
|
+
});
|
|
56
45
|
});
|
|
57
46
|
return (_jsxs(FeedbackMessageContainer, { children: [_jsx(FeedbackButton, Object.assign({ className: className, disabled: disabled.positive, onClick: () => handleClick(true) }, { children: _jsx("img", { src: resolveImage(ThumbsUp) }) })), _jsx(FeedbackButton, Object.assign({ className: className, disabled: disabled.negative, onClick: () => handleClick(false) }, { children: _jsx("img", { src: resolveImage(ThumbsDown) }) }))] }));
|
|
58
47
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;AAAA,OAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"message-feedback.js","sourceRoot":"","sources":["../../../../src/components/message/message-feedback.tsx"],"names":[],"mappings":";;AAAA,OAAc,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE9D,OAAO,UAAU,MAAM,8BAA8B,CAAA;AACrD,OAAO,QAAQ,MAAM,4BAA4B,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAA;AAanE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAC9B,gBAAgB,EAChB,WAAW,EACX,SAAS,GACG,EAAE,EAAE;IAChB,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAClE,MAAM,EAAE,0BAA0B,EAAE,GAAG,WAAW,EAAE,CAAA;IAEpD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC9C,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAe;QACrD,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAA;IAEF,MAAM,qBAAqB,GAAG,CAAC,eAAwB,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,SAAS,CACpC,CAAA;QACD,MAAM,UAAU,mCACX,OAAO,KACV,eAAe,GAChB,CAAA;QACD,aAAa,CAAC,UAAU,CAAC,CAAA;IAC3B,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;QACb,qBAAqB,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC1C,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,qBAAqB,CAAC,KAAK,CAAC,CAAA;SAC7B;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEd,MAAM,WAAW,GAAG,CAAO,QAAiB,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE;YACZ,WAAW,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;SACjD;aAAM;YACL,WAAW,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAA;SACjD;QAED,MAAM,0BAA0B,CAAC;YAC/B,SAAS;YACT,QAAQ;YACR,gBAAgB;YAChB,WAAW;SACZ,CAAC,CAAA;IACJ,CAAC,CAAA,CAAA;IAED,OAAO,CACL,MAAC,wBAAwB,eACvB,KAAC,cAAc,kBACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,gBAEhC,cAAK,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,GAAI,IACrB,EACjB,KAAC,cAAc,kBACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,gBAEjC,cAAK,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,GAAI,IACvB,IACQ,CAC5B,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
export declare enum EventAction {
|
|
2
2
|
FeedbackKnowledgebase = "feedback_knowledgebase"
|
|
3
3
|
}
|
|
4
|
+
interface TrackKnowledgebaseFeedbackArgs {
|
|
5
|
+
messageId: string;
|
|
6
|
+
isUseful: boolean;
|
|
7
|
+
botInteractionId?: string;
|
|
8
|
+
inferenceId?: string;
|
|
9
|
+
}
|
|
4
10
|
export declare enum FeedbackOption {
|
|
5
11
|
ThumbsUp = "thumbsUp",
|
|
6
12
|
ThumbsDown = "thumbsDown"
|
|
7
13
|
}
|
|
14
|
+
export declare function useTracking(): {
|
|
15
|
+
trackKnowledgebaseFeedback: ({ messageId, isUseful, botInteractionId, inferenceId, }: TrackKnowledgebaseFeedbackArgs) => Promise<void>;
|
|
16
|
+
};
|
|
17
|
+
export {};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
import { v7 as uuidv7 } from 'uuid';
|
|
4
|
+
import { WebchatContext } from './context';
|
|
1
5
|
export var EventAction;
|
|
2
6
|
(function (EventAction) {
|
|
3
7
|
EventAction["FeedbackKnowledgebase"] = "feedback_knowledgebase";
|
|
@@ -7,4 +11,37 @@ export var FeedbackOption;
|
|
|
7
11
|
FeedbackOption["ThumbsUp"] = "thumbsUp";
|
|
8
12
|
FeedbackOption["ThumbsDown"] = "thumbsDown";
|
|
9
13
|
})(FeedbackOption || (FeedbackOption = {}));
|
|
14
|
+
export function useTracking() {
|
|
15
|
+
const { webchatState, trackEvent } = useContext(WebchatContext);
|
|
16
|
+
const getRequest = () => {
|
|
17
|
+
const request = {
|
|
18
|
+
session: Object.assign({}, webchatState.session),
|
|
19
|
+
getUserCountry: () => { var _a; return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.country) || ''; },
|
|
20
|
+
getUserLocale: () => { var _a; return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.locale) || ''; },
|
|
21
|
+
getSystemLocale: () => {
|
|
22
|
+
var _a;
|
|
23
|
+
return ((_a = webchatState.session.user) === null || _a === void 0 ? void 0 : _a.system_locale) || '';
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
return request;
|
|
27
|
+
};
|
|
28
|
+
const trackKnowledgebaseFeedback = ({ messageId, isUseful, botInteractionId, inferenceId, }) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
if (!trackEvent) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const args = {
|
|
33
|
+
knowledgebaseInferenceId: inferenceId,
|
|
34
|
+
feedbackBotInteractionId: botInteractionId,
|
|
35
|
+
feedbackTargetId: messageId,
|
|
36
|
+
feedbackGroupId: uuidv7(),
|
|
37
|
+
possibleOptions: [FeedbackOption.ThumbsDown, FeedbackOption.ThumbsUp],
|
|
38
|
+
possibleValues: [0, 1],
|
|
39
|
+
option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
|
|
40
|
+
value: isUseful ? 1 : 0,
|
|
41
|
+
};
|
|
42
|
+
const request = getRequest();
|
|
43
|
+
yield trackEvent(request, EventAction.FeedbackKnowledgebase, args);
|
|
44
|
+
});
|
|
45
|
+
return { trackKnowledgebaseFeedback };
|
|
46
|
+
}
|
|
10
47
|
//# sourceMappingURL=tracking.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,+DAAgD,CAAA;AAClD,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;
|
|
1
|
+
{"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAE1C,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,+DAAgD,CAAA;AAClD,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AAQD,MAAM,CAAN,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAE/D,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,OAAO,GAAG;YACd,OAAO,oBACF,YAAY,CAAC,OAAO,CACxB;YACD,cAAc,EAAE,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,OAAO,KAAI,EAAE,CAAA,EAAA;YAC9D,aAAa,EAAE,GAAG,EAAE,WAAC,OAAA,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,MAAM,KAAI,EAAE,CAAA,EAAA;YAC5D,eAAe,EAAE,GAAG,EAAE;;gBACpB,OAAO,CAAA,MAAA,YAAY,CAAC,OAAO,CAAC,IAAI,0CAAE,aAAa,KAAI,EAAE,CAAA;YACvD,CAAC;SAC0B,CAAA;QAE7B,OAAO,OAAO,CAAA;IAChB,CAAC,CAAA;IAED,MAAM,0BAA0B,GAAG,CAAO,EACxC,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,WAAW,GACoB,EAAE,EAAE;QACnC,IAAI,CAAC,UAAU,EAAE;YACf,OAAM;SACP;QAED,MAAM,IAAI,GAAG;YACX,wBAAwB,EAAE,WAAW;YACrC,wBAAwB,EAAE,gBAAgB;YAC1C,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,MAAM,EAAE;YACzB,eAAe,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;YACrE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACtB,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU;YACtE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACxB,CAAA;QAED,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;QAE5B,MAAM,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAA;IACpE,CAAC,CAAA,CAAA;IAED,OAAO,EAAE,0BAA0B,EAAE,CAAA;AACvC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!DOCTYPE html>
|
|
2
2
|
<html lang="en-US">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
@@ -28,50 +28,9 @@
|
|
|
28
28
|
</style>
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
|
31
|
-
<div id="webchatRoot"></div>
|
|
32
31
|
<script type="text/javascript">
|
|
33
32
|
document.addEventListener('DOMContentLoaded', function (event) {
|
|
34
|
-
Botonic.render(
|
|
35
|
-
onInit: async app => {
|
|
36
|
-
const urlParams = new URLSearchParams(location.search)
|
|
37
|
-
const userLocale = urlParams.get('userLocale')
|
|
38
|
-
const userCountry = urlParams.get('userCountry')
|
|
39
|
-
const systemLocale = urlParams.get('systemLocale')
|
|
40
|
-
|
|
41
|
-
// app.setSystemLocale(systemLocale)
|
|
42
|
-
// app.setUserLocale(userLocale)
|
|
43
|
-
// app.setUserCountry(userCountry)
|
|
44
|
-
|
|
45
|
-
const extraLanguage = urlParams.get('extraLanguage')
|
|
46
|
-
const extraCountry = urlParams.get('extraCountry')
|
|
47
|
-
|
|
48
|
-
console.log('systemLocale', systemLocale)
|
|
49
|
-
console.log('userLocale', userLocale)
|
|
50
|
-
console.log('userCountry', userCountry)
|
|
51
|
-
console.log('extraLanguage', extraLanguage)
|
|
52
|
-
console.log('extraCountry', extraCountry)
|
|
53
|
-
|
|
54
|
-
app.updateUser({
|
|
55
|
-
country: userCountry,
|
|
56
|
-
locale: userLocale,
|
|
57
|
-
system_locale: systemLocale,
|
|
58
|
-
extra_data: {
|
|
59
|
-
country: extraCountry,
|
|
60
|
-
language: extraLanguage,
|
|
61
|
-
},
|
|
62
|
-
})
|
|
63
|
-
await window.botonicOnInit(app)
|
|
64
|
-
},
|
|
65
|
-
onOpen: async app => {
|
|
66
|
-
await window.botonicOnOpen(app)
|
|
67
|
-
},
|
|
68
|
-
onClose: async app => {
|
|
69
|
-
await window.botonicOnClose(app)
|
|
70
|
-
},
|
|
71
|
-
onMessage: async (app, message) => {
|
|
72
|
-
await window.botonicOnMessage(app, message)
|
|
73
|
-
},
|
|
74
|
-
})
|
|
33
|
+
Botonic.render()
|
|
75
34
|
})
|
|
76
35
|
</script>
|
|
77
36
|
</body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@botonic/react",
|
|
3
|
-
"version": "0.35.0
|
|
3
|
+
"version": "0.35.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Build Chatbots using React",
|
|
6
6
|
"main": "./lib/cjs",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' --fix"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@botonic/core": "0.35.0
|
|
24
|
-
"axios": "^1.
|
|
23
|
+
"@botonic/core": "^0.35.0",
|
|
24
|
+
"axios": "^1.9.0",
|
|
25
25
|
"emoji-picker-react": "^4.12.0",
|
|
26
26
|
"lodash.merge": "^4.6.2",
|
|
27
27
|
"markdown-it": "^12.3.2",
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import React, { useContext, useEffect, useState } from 'react'
|
|
2
|
-
import { v7 as uuidv7 } from 'uuid'
|
|
3
2
|
|
|
4
3
|
import ThumbsDown from '../../assets/thumbs-down.svg'
|
|
5
4
|
import ThumbsUp from '../../assets/thumbs-up.svg'
|
|
6
|
-
import { ActionRequest } from '../../index-types'
|
|
7
5
|
import { resolveImage } from '../../util'
|
|
8
6
|
import { WebchatContext } from '../../webchat/context'
|
|
9
|
-
import {
|
|
7
|
+
import { useTracking } from '../../webchat/tracking'
|
|
10
8
|
import { FeedbackButton, FeedbackMessageContainer } from './styles'
|
|
11
9
|
|
|
12
10
|
interface ButtonsState {
|
|
@@ -25,7 +23,8 @@ export const MessageFeedback = ({
|
|
|
25
23
|
inferenceId,
|
|
26
24
|
messageId,
|
|
27
25
|
}: RatingProps) => {
|
|
28
|
-
const { webchatState, updateMessage
|
|
26
|
+
const { webchatState, updateMessage } = useContext(WebchatContext)
|
|
27
|
+
const { trackKnowledgebaseFeedback } = useTracking()
|
|
29
28
|
|
|
30
29
|
const [className, setClassName] = useState('')
|
|
31
30
|
const [disabled, setDisabled] = useState<ButtonsState>({
|
|
@@ -56,34 +55,18 @@ export const MessageFeedback = ({
|
|
|
56
55
|
}, [disabled])
|
|
57
56
|
|
|
58
57
|
const handleClick = async (isUseful: boolean) => {
|
|
59
|
-
if (!trackEvent) {
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
|
|
63
58
|
if (isUseful) {
|
|
64
59
|
setDisabled({ positive: false, negative: true })
|
|
65
60
|
} else {
|
|
66
61
|
setDisabled({ positive: true, negative: false })
|
|
67
62
|
}
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
possibleValues: [0, 1],
|
|
76
|
-
option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
|
|
77
|
-
value: isUseful ? 1 : 0,
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
const request = {
|
|
81
|
-
session: {
|
|
82
|
-
...webchatState.session,
|
|
83
|
-
},
|
|
84
|
-
} as unknown as ActionRequest
|
|
85
|
-
|
|
86
|
-
await trackEvent(request, EventAction.FeedbackKnowledgebase, args)
|
|
64
|
+
await trackKnowledgebaseFeedback({
|
|
65
|
+
messageId,
|
|
66
|
+
isUseful,
|
|
67
|
+
botInteractionId,
|
|
68
|
+
inferenceId,
|
|
69
|
+
})
|
|
87
70
|
}
|
|
88
71
|
|
|
89
72
|
return (
|
package/src/webchat/tracking.ts
CHANGED
|
@@ -1,8 +1,67 @@
|
|
|
1
|
+
import { useContext } from 'react'
|
|
2
|
+
import { v7 as uuidv7 } from 'uuid'
|
|
3
|
+
|
|
4
|
+
import { ActionRequest } from '../index-types'
|
|
5
|
+
import { WebchatContext } from './context'
|
|
6
|
+
|
|
1
7
|
export enum EventAction {
|
|
2
8
|
FeedbackKnowledgebase = 'feedback_knowledgebase',
|
|
3
9
|
}
|
|
10
|
+
interface TrackKnowledgebaseFeedbackArgs {
|
|
11
|
+
messageId: string
|
|
12
|
+
isUseful: boolean
|
|
13
|
+
botInteractionId?: string
|
|
14
|
+
inferenceId?: string
|
|
15
|
+
}
|
|
4
16
|
|
|
5
17
|
export enum FeedbackOption {
|
|
6
18
|
ThumbsUp = 'thumbsUp',
|
|
7
19
|
ThumbsDown = 'thumbsDown',
|
|
8
20
|
}
|
|
21
|
+
|
|
22
|
+
export function useTracking() {
|
|
23
|
+
const { webchatState, trackEvent } = useContext(WebchatContext)
|
|
24
|
+
|
|
25
|
+
const getRequest = () => {
|
|
26
|
+
const request = {
|
|
27
|
+
session: {
|
|
28
|
+
...webchatState.session,
|
|
29
|
+
},
|
|
30
|
+
getUserCountry: () => webchatState.session.user?.country || '',
|
|
31
|
+
getUserLocale: () => webchatState.session.user?.locale || '',
|
|
32
|
+
getSystemLocale: () => {
|
|
33
|
+
return webchatState.session.user?.system_locale || ''
|
|
34
|
+
},
|
|
35
|
+
} as unknown as ActionRequest
|
|
36
|
+
|
|
37
|
+
return request
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const trackKnowledgebaseFeedback = async ({
|
|
41
|
+
messageId,
|
|
42
|
+
isUseful,
|
|
43
|
+
botInteractionId,
|
|
44
|
+
inferenceId,
|
|
45
|
+
}: TrackKnowledgebaseFeedbackArgs) => {
|
|
46
|
+
if (!trackEvent) {
|
|
47
|
+
return
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const args = {
|
|
51
|
+
knowledgebaseInferenceId: inferenceId,
|
|
52
|
+
feedbackBotInteractionId: botInteractionId,
|
|
53
|
+
feedbackTargetId: messageId,
|
|
54
|
+
feedbackGroupId: uuidv7(),
|
|
55
|
+
possibleOptions: [FeedbackOption.ThumbsDown, FeedbackOption.ThumbsUp],
|
|
56
|
+
possibleValues: [0, 1],
|
|
57
|
+
option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
|
|
58
|
+
value: isUseful ? 1 : 0,
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const request = getRequest()
|
|
62
|
+
|
|
63
|
+
await trackEvent(request, EventAction.FeedbackKnowledgebase, args)
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return { trackKnowledgebaseFeedback }
|
|
67
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!DOCTYPE html>
|
|
2
2
|
<html lang="en-US">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8" />
|
|
@@ -28,50 +28,9 @@
|
|
|
28
28
|
</style>
|
|
29
29
|
</head>
|
|
30
30
|
<body>
|
|
31
|
-
<div id="webchatRoot"></div>
|
|
32
31
|
<script type="text/javascript">
|
|
33
32
|
document.addEventListener('DOMContentLoaded', function (event) {
|
|
34
|
-
Botonic.render(
|
|
35
|
-
onInit: async app => {
|
|
36
|
-
const urlParams = new URLSearchParams(location.search)
|
|
37
|
-
const userLocale = urlParams.get('userLocale')
|
|
38
|
-
const userCountry = urlParams.get('userCountry')
|
|
39
|
-
const systemLocale = urlParams.get('systemLocale')
|
|
40
|
-
|
|
41
|
-
// app.setSystemLocale(systemLocale)
|
|
42
|
-
// app.setUserLocale(userLocale)
|
|
43
|
-
// app.setUserCountry(userCountry)
|
|
44
|
-
|
|
45
|
-
const extraLanguage = urlParams.get('extraLanguage')
|
|
46
|
-
const extraCountry = urlParams.get('extraCountry')
|
|
47
|
-
|
|
48
|
-
console.log('systemLocale', systemLocale)
|
|
49
|
-
console.log('userLocale', userLocale)
|
|
50
|
-
console.log('userCountry', userCountry)
|
|
51
|
-
console.log('extraLanguage', extraLanguage)
|
|
52
|
-
console.log('extraCountry', extraCountry)
|
|
53
|
-
|
|
54
|
-
app.updateUser({
|
|
55
|
-
country: userCountry,
|
|
56
|
-
locale: userLocale,
|
|
57
|
-
system_locale: systemLocale,
|
|
58
|
-
extra_data: {
|
|
59
|
-
country: extraCountry,
|
|
60
|
-
language: extraLanguage,
|
|
61
|
-
},
|
|
62
|
-
})
|
|
63
|
-
await window.botonicOnInit(app)
|
|
64
|
-
},
|
|
65
|
-
onOpen: async app => {
|
|
66
|
-
await window.botonicOnOpen(app)
|
|
67
|
-
},
|
|
68
|
-
onClose: async app => {
|
|
69
|
-
await window.botonicOnClose(app)
|
|
70
|
-
},
|
|
71
|
-
onMessage: async (app, message) => {
|
|
72
|
-
await window.botonicOnMessage(app, message)
|
|
73
|
-
},
|
|
74
|
-
})
|
|
33
|
+
Botonic.render()
|
|
75
34
|
})
|
|
76
35
|
</script>
|
|
77
36
|
</body>
|