@botonic/react 0.37.1 → 0.37.2-alpha.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.
@@ -1,3 +1,4 @@
1
+ import { EventCustom, EventFeedback } from '@botonic/core';
1
2
  export declare enum EventAction {
2
3
  FeedbackKnowledgebase = "feedback_knowledgebase"
3
4
  }
@@ -7,11 +8,10 @@ interface TrackKnowledgebaseFeedbackArgs {
7
8
  botInteractionId?: string;
8
9
  inferenceId?: string;
9
10
  }
10
- export declare enum FeedbackOption {
11
- ThumbsUp = "thumbsUp",
12
- ThumbsDown = "thumbsDown"
13
- }
14
- export declare function useTracking(): {
11
+ interface UseTracking {
15
12
  trackKnowledgebaseFeedback: ({ messageId, isUseful, botInteractionId, inferenceId, }: TrackKnowledgebaseFeedbackArgs) => Promise<void>;
16
- };
13
+ trackCustomEvent: (event: EventCustom) => Promise<void>;
14
+ trackFeedbackEvent: (event: EventFeedback) => Promise<void>;
15
+ }
16
+ export declare function useTracking(): UseTracking;
17
17
  export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useTracking = exports.FeedbackOption = exports.EventAction = void 0;
3
+ exports.useTracking = exports.EventAction = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = require("react");
6
6
  const uuid_1 = require("uuid");
@@ -13,7 +13,7 @@ var FeedbackOption;
13
13
  (function (FeedbackOption) {
14
14
  FeedbackOption["ThumbsUp"] = "thumbsUp";
15
15
  FeedbackOption["ThumbsDown"] = "thumbsDown";
16
- })(FeedbackOption = exports.FeedbackOption || (exports.FeedbackOption = {}));
16
+ })(FeedbackOption || (FeedbackOption = {}));
17
17
  function useTracking() {
18
18
  const { webchatState, trackEvent } = (0, react_1.useContext)(context_1.WebchatContext);
19
19
  const getRequest = () => {
@@ -32,7 +32,10 @@ function useTracking() {
32
32
  if (!trackEvent) {
33
33
  return;
34
34
  }
35
- const args = {
35
+ const request = getRequest();
36
+ // inferenceId and botInteractionId are strings, but in local development they are undefined
37
+ const event = {
38
+ action: EventAction.FeedbackKnowledgebase,
36
39
  knowledgebaseInferenceId: inferenceId,
37
40
  feedbackBotInteractionId: botInteractionId,
38
41
  feedbackTargetId: messageId,
@@ -42,10 +45,26 @@ function useTracking() {
42
45
  option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
43
46
  value: isUseful ? 1 : 0,
44
47
  };
48
+ const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
49
+ yield trackEvent(request, action, eventArgs);
50
+ });
51
+ const trackCustomEvent = (event) => tslib_1.__awaiter(this, void 0, void 0, function* () {
52
+ if (!trackEvent) {
53
+ return;
54
+ }
55
+ const request = getRequest();
56
+ const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
57
+ yield trackEvent(request, action, eventArgs);
58
+ });
59
+ const trackFeedbackEvent = (event) => tslib_1.__awaiter(this, void 0, void 0, function* () {
60
+ if (!trackEvent) {
61
+ return;
62
+ }
45
63
  const request = getRequest();
46
- yield trackEvent(request, EventAction.FeedbackKnowledgebase, args);
64
+ const { action } = event, eventArgs = tslib_1.__rest(event, ["action"]);
65
+ yield trackEvent(request, action, eventArgs);
47
66
  });
48
- return { trackKnowledgebaseFeedback };
67
+ return { trackKnowledgebaseFeedback, trackCustomEvent, trackFeedbackEvent };
49
68
  }
50
69
  exports.useTracking = useTracking;
51
70
  //# sourceMappingURL=tracking.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { EventCustom, EventFeedback } from '@botonic/core';
1
2
  export declare enum EventAction {
2
3
  FeedbackKnowledgebase = "feedback_knowledgebase"
3
4
  }
@@ -7,11 +8,10 @@ interface TrackKnowledgebaseFeedbackArgs {
7
8
  botInteractionId?: string;
8
9
  inferenceId?: string;
9
10
  }
10
- export declare enum FeedbackOption {
11
- ThumbsUp = "thumbsUp",
12
- ThumbsDown = "thumbsDown"
13
- }
14
- export declare function useTracking(): {
11
+ interface UseTracking {
15
12
  trackKnowledgebaseFeedback: ({ messageId, isUseful, botInteractionId, inferenceId, }: TrackKnowledgebaseFeedbackArgs) => Promise<void>;
16
- };
13
+ trackCustomEvent: (event: EventCustom) => Promise<void>;
14
+ trackFeedbackEvent: (event: EventFeedback) => Promise<void>;
15
+ }
16
+ export declare function useTracking(): UseTracking;
17
17
  export {};
@@ -1,4 +1,4 @@
1
- import { __awaiter } from "tslib";
1
+ import { __awaiter, __rest } from "tslib";
2
2
  import { useContext } from 'react';
3
3
  import { v7 as uuidv7 } from 'uuid';
4
4
  import { WebchatContext } from './context';
@@ -6,7 +6,7 @@ export var EventAction;
6
6
  (function (EventAction) {
7
7
  EventAction["FeedbackKnowledgebase"] = "feedback_knowledgebase";
8
8
  })(EventAction || (EventAction = {}));
9
- export var FeedbackOption;
9
+ var FeedbackOption;
10
10
  (function (FeedbackOption) {
11
11
  FeedbackOption["ThumbsUp"] = "thumbsUp";
12
12
  FeedbackOption["ThumbsDown"] = "thumbsDown";
@@ -29,7 +29,10 @@ export function useTracking() {
29
29
  if (!trackEvent) {
30
30
  return;
31
31
  }
32
- const args = {
32
+ const request = getRequest();
33
+ // inferenceId and botInteractionId are strings, but in local development they are undefined
34
+ const event = {
35
+ action: EventAction.FeedbackKnowledgebase,
33
36
  knowledgebaseInferenceId: inferenceId,
34
37
  feedbackBotInteractionId: botInteractionId,
35
38
  feedbackTargetId: messageId,
@@ -39,9 +42,25 @@ export function useTracking() {
39
42
  option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
40
43
  value: isUseful ? 1 : 0,
41
44
  };
45
+ const { action } = event, eventArgs = __rest(event, ["action"]);
46
+ yield trackEvent(request, action, eventArgs);
47
+ });
48
+ const trackCustomEvent = (event) => __awaiter(this, void 0, void 0, function* () {
49
+ if (!trackEvent) {
50
+ return;
51
+ }
52
+ const request = getRequest();
53
+ const { action } = event, eventArgs = __rest(event, ["action"]);
54
+ yield trackEvent(request, action, eventArgs);
55
+ });
56
+ const trackFeedbackEvent = (event) => __awaiter(this, void 0, void 0, function* () {
57
+ if (!trackEvent) {
58
+ return;
59
+ }
42
60
  const request = getRequest();
43
- yield trackEvent(request, EventAction.FeedbackKnowledgebase, args);
61
+ const { action } = event, eventArgs = __rest(event, ["action"]);
62
+ yield trackEvent(request, action, eventArgs);
44
63
  });
45
- return { trackKnowledgebaseFeedback };
64
+ return { trackKnowledgebaseFeedback, trackCustomEvent, trackFeedbackEvent };
46
65
  }
47
66
  //# sourceMappingURL=tracking.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"tracking.js","sourceRoot":"","sources":["../../../src/webchat/tracking.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botonic/react",
3
- "version": "0.37.1",
3
+ "version": "0.37.2-alpha.0",
4
4
  "license": "MIT",
5
5
  "description": "Build Chatbots using React",
6
6
  "main": "./lib/cjs",
@@ -21,7 +21,7 @@
21
21
  "lint_core": "../../node_modules/.bin/eslint_d --cache --quiet '.*.js' '*.js' 'src/**/*.js*' --fix"
22
22
  },
23
23
  "dependencies": {
24
- "@botonic/core": "^0.37.0",
24
+ "@botonic/core": "0.37.1-alpha.0",
25
25
  "axios": "^1.10.0",
26
26
  "emoji-picker-react": "^4.12.0",
27
27
  "lodash.merge": "^4.6.2",
@@ -1,3 +1,8 @@
1
+ import {
2
+ EventCustom,
3
+ EventFeedback,
4
+ EventFeedbackKnowledgebase,
5
+ } from '@botonic/core'
1
6
  import { useContext } from 'react'
2
7
  import { v7 as uuidv7 } from 'uuid'
3
8
 
@@ -14,12 +19,23 @@ interface TrackKnowledgebaseFeedbackArgs {
14
19
  inferenceId?: string
15
20
  }
16
21
 
17
- export enum FeedbackOption {
22
+ enum FeedbackOption {
18
23
  ThumbsUp = 'thumbsUp',
19
24
  ThumbsDown = 'thumbsDown',
20
25
  }
21
26
 
22
- export function useTracking() {
27
+ interface UseTracking {
28
+ trackKnowledgebaseFeedback: ({
29
+ messageId,
30
+ isUseful,
31
+ botInteractionId,
32
+ inferenceId,
33
+ }: TrackKnowledgebaseFeedbackArgs) => Promise<void>
34
+ trackCustomEvent: (event: EventCustom) => Promise<void>
35
+ trackFeedbackEvent: (event: EventFeedback) => Promise<void>
36
+ }
37
+
38
+ export function useTracking(): UseTracking {
23
39
  const { webchatState, trackEvent } = useContext(WebchatContext)
24
40
 
25
41
  const getRequest = () => {
@@ -46,10 +62,13 @@ export function useTracking() {
46
62
  if (!trackEvent) {
47
63
  return
48
64
  }
65
+ const request = getRequest()
49
66
 
50
- const args = {
51
- knowledgebaseInferenceId: inferenceId,
52
- feedbackBotInteractionId: botInteractionId,
67
+ // inferenceId and botInteractionId are strings, but in local development they are undefined
68
+ const event: EventFeedbackKnowledgebase = {
69
+ action: EventAction.FeedbackKnowledgebase,
70
+ knowledgebaseInferenceId: inferenceId as string,
71
+ feedbackBotInteractionId: botInteractionId as string,
53
72
  feedbackTargetId: messageId,
54
73
  feedbackGroupId: uuidv7(),
55
74
  possibleOptions: [FeedbackOption.ThumbsDown, FeedbackOption.ThumbsUp],
@@ -57,11 +76,30 @@ export function useTracking() {
57
76
  option: isUseful ? FeedbackOption.ThumbsUp : FeedbackOption.ThumbsDown,
58
77
  value: isUseful ? 1 : 0,
59
78
  }
79
+ const { action, ...eventArgs } = event
80
+
81
+ await trackEvent(request, action, eventArgs)
82
+ }
83
+
84
+ const trackCustomEvent = async (event: EventCustom) => {
85
+ if (!trackEvent) {
86
+ return
87
+ }
60
88
 
61
89
  const request = getRequest()
90
+ const { action, ...eventArgs } = event
91
+ await trackEvent(request, action, eventArgs)
92
+ }
62
93
 
63
- await trackEvent(request, EventAction.FeedbackKnowledgebase, args)
94
+ const trackFeedbackEvent = async (event: EventFeedback) => {
95
+ if (!trackEvent) {
96
+ return
97
+ }
98
+
99
+ const request = getRequest()
100
+ const { action, ...eventArgs } = event
101
+ await trackEvent(request, action, eventArgs)
64
102
  }
65
103
 
66
- return { trackKnowledgebaseFeedback }
104
+ return { trackKnowledgebaseFeedback, trackCustomEvent, trackFeedbackEvent }
67
105
  }