vdb-ai-chat 1.0.0 → 1.0.2
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/dist/10.chat-widget.js +2 -0
- package/dist/10.chat-widget.js.LICENSE.txt +1 -0
- package/dist/104.chat-widget.js +1 -0
- package/dist/248.chat-widget.js +1 -0
- package/dist/50.chat-widget.js +1 -0
- package/dist/521.chat-widget.js +1 -0
- package/dist/538.chat-widget.js +1 -0
- package/dist/572.chat-widget.js +1 -0
- package/dist/694.chat-widget.js +1 -0
- package/dist/chat-widget.js +1 -1
- package/dist/chat-widget.js.LICENSE.txt +2 -0
- package/lib/commonjs/api.js +6 -8
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/BetaNotice.js +38 -0
- package/lib/commonjs/components/BetaNotice.js.map +1 -0
- package/lib/commonjs/components/ChatHeader.js +41 -21
- package/lib/commonjs/components/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/ChatInput.js +21 -21
- package/lib/commonjs/components/ChatInput.js.map +1 -1
- package/lib/commonjs/components/ChatWidget.js +162 -90
- package/lib/commonjs/components/ChatWidget.js.map +1 -1
- package/lib/commonjs/components/MessageBubble.js +28 -68
- package/lib/commonjs/components/MessageBubble.js.map +1 -1
- package/lib/commonjs/components/MessageMetaRow.js +135 -0
- package/lib/commonjs/components/MessageMetaRow.js.map +1 -0
- package/lib/commonjs/components/ProductsGrid.js +139 -0
- package/lib/commonjs/components/ProductsGrid.js.map +1 -0
- package/lib/commonjs/components/ProductsList.js +22 -126
- package/lib/commonjs/components/ProductsList.js.map +1 -1
- package/lib/commonjs/components/ProductsListView.js +139 -0
- package/lib/commonjs/components/ProductsListView.js.map +1 -0
- package/lib/commonjs/components/SuggestionsRow.js +41 -23
- package/lib/commonjs/components/SuggestionsRow.js.map +1 -1
- package/lib/commonjs/components/utils.js +50 -4
- package/lib/commonjs/components/utils.js.map +1 -1
- package/lib/commonjs/contexts/AnalyticsClientContext.js +19 -0
- package/lib/commonjs/contexts/AnalyticsClientContext.js.map +1 -0
- package/lib/commonjs/hooks/useAnalytics.js +158 -0
- package/lib/commonjs/hooks/useAnalytics.js.map +1 -0
- package/lib/commonjs/index.web.js +91 -8
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/storage.js +5 -5
- package/lib/commonjs/storage.js.map +1 -1
- package/lib/commonjs/theme.js +4 -4
- package/lib/commonjs/theme.js.map +1 -1
- package/lib/module/api.js +6 -8
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/BetaNotice.js +30 -0
- package/lib/module/components/BetaNotice.js.map +1 -0
- package/lib/module/components/ChatHeader.js +41 -21
- package/lib/module/components/ChatHeader.js.map +1 -1
- package/lib/module/components/ChatInput.js +21 -21
- package/lib/module/components/ChatInput.js.map +1 -1
- package/lib/module/components/ChatWidget.js +164 -92
- package/lib/module/components/ChatWidget.js.map +1 -1
- package/lib/module/components/MessageBubble.js +28 -70
- package/lib/module/components/MessageBubble.js.map +1 -1
- package/lib/module/components/MessageMetaRow.js +127 -0
- package/lib/module/components/MessageMetaRow.js.map +1 -0
- package/lib/module/components/ProductsGrid.js +133 -0
- package/lib/module/components/ProductsGrid.js.map +1 -0
- package/lib/module/components/ProductsList.js +21 -126
- package/lib/module/components/ProductsList.js.map +1 -1
- package/lib/module/components/ProductsListView.js +132 -0
- package/lib/module/components/ProductsListView.js.map +1 -0
- package/lib/module/components/SuggestionsRow.js +41 -23
- package/lib/module/components/SuggestionsRow.js.map +1 -1
- package/lib/module/components/utils.js +46 -3
- package/lib/module/components/utils.js.map +1 -1
- package/lib/module/contexts/AnalyticsClientContext.js +10 -0
- package/lib/module/contexts/AnalyticsClientContext.js.map +1 -0
- package/lib/module/hooks/useAnalytics.js +146 -0
- package/lib/module/hooks/useAnalytics.js.map +1 -0
- package/lib/module/index.native.js +5 -5
- package/lib/module/index.web.js +89 -6
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/storage.js +6 -6
- package/lib/module/storage.js.map +1 -1
- package/lib/module/theme.js +4 -4
- package/lib/module/theme.js.map +1 -1
- package/lib/typescript/api.d.ts +1 -1
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/BetaNotice.d.ts +5 -0
- package/lib/typescript/components/BetaNotice.d.ts.map +1 -0
- package/lib/typescript/components/ChatHeader.d.ts +5 -2
- package/lib/typescript/components/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/ChatInput.d.ts.map +1 -1
- package/lib/typescript/components/ChatWidget.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble.d.ts +9 -3
- package/lib/typescript/components/MessageBubble.d.ts.map +1 -1
- package/lib/typescript/components/MessageMetaRow.d.ts +14 -0
- package/lib/typescript/components/MessageMetaRow.d.ts.map +1 -0
- package/lib/typescript/components/ProductsGrid.d.ts +10 -0
- package/lib/typescript/components/ProductsGrid.d.ts.map +1 -0
- package/lib/typescript/components/ProductsList.d.ts +4 -2
- package/lib/typescript/components/ProductsList.d.ts.map +1 -1
- package/lib/typescript/components/ProductsListView.d.ts +10 -0
- package/lib/typescript/components/ProductsListView.d.ts.map +1 -0
- package/lib/typescript/components/SuggestionsRow.d.ts +2 -0
- package/lib/typescript/components/SuggestionsRow.d.ts.map +1 -1
- package/lib/typescript/components/utils.d.ts +24 -0
- package/lib/typescript/components/utils.d.ts.map +1 -1
- package/lib/typescript/contexts/AnalyticsClientContext.d.ts +9 -0
- package/lib/typescript/contexts/AnalyticsClientContext.d.ts.map +1 -0
- package/lib/typescript/hooks/useAnalytics.d.ts +36 -0
- package/lib/typescript/hooks/useAnalytics.d.ts.map +1 -0
- package/lib/typescript/index.native.d.ts +5 -5
- package/lib/typescript/index.web.d.ts +1 -1
- package/lib/typescript/index.web.d.ts.map +1 -1
- package/lib/typescript/storage.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +4 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +13 -3
- package/src/api.ts +26 -14
- package/src/components/BetaNotice.tsx +32 -0
- package/src/components/ChatHeader.tsx +43 -18
- package/src/components/ChatInput.tsx +20 -21
- package/src/components/ChatWidget.tsx +282 -219
- package/src/components/MessageBubble.tsx +48 -111
- package/src/components/MessageMetaRow.tsx +199 -0
- package/src/components/ProductsGrid.tsx +163 -0
- package/src/components/ProductsList.tsx +20 -144
- package/src/components/ProductsListView.tsx +149 -0
- package/src/components/SuggestionsRow.tsx +45 -21
- package/src/components/utils.ts +66 -5
- package/src/contexts/AnalyticsClientContext.tsx +20 -0
- package/src/hooks/useAnalytics.tsx +176 -0
- package/src/index.native.tsx +5 -5
- package/src/index.web.tsx +92 -4
- package/src/storage.ts +16 -13
- package/src/theme.ts +4 -4
- package/src/types.ts +4 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_ProductsGrid","_ProductsListView","e","__esModule","default","ProductsList","data","onViewAll","onItemPress","variant","totalResults","length","createElement","_default","exports"],"sourceRoot":"../../../src","sources":["components/ProductsList.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAH,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUlD,MAAMG,YAAyC,GAAGA,CAAC;EACjDC,IAAI;EACJC,SAAS;EACTC,WAAW;EACXC,OAAO,GAAG,MAAM;EAChBC;AACF,CAAC,KAAK;EACJ,IAAI,CAACJ,IAAI,IAAI,CAACA,IAAI,CAACK,MAAM,EAAE,OAAO,IAAI;EACtC,IAAIF,OAAO,KAAK,MAAM,EAAE;IACtB,oBACEZ,MAAA,CAAAO,OAAA,CAAAQ,aAAA,CAACX,iBAAA,CAAAG,OAAgB;MACfE,IAAI,EAAEA,IAAK;MACXC,SAAS,EAAEA,SAAU;MACrBC,WAAW,EAAEA,WAAY;MACzBE,YAAY,EAAEA;IAAa,CAC5B,CAAC;EAEN;EACA,oBACEb,MAAA,CAAAO,OAAA,CAAAQ,aAAA,CAACZ,aAAA,CAAAI,OAAY;IAACE,IAAI,EAAEA,IAAK;IAACC,SAAS,EAAEA,SAAU;IAACC,WAAW,EAAEA,WAAY;IAACE,YAAY,EAAEA;EAAa,CAAE,CAAC;AAE5G,CAAC;AAAC,IAAAG,QAAA,GAAAC,OAAA,CAAAV,OAAA,GAEaC,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
+
let ImageComponent = _reactNative.Image;
|
|
11
|
+
if (_reactNative.Platform.OS !== "web") {
|
|
12
|
+
try {
|
|
13
|
+
const ExpoImage = require("expo-image").Image;
|
|
14
|
+
if (ExpoImage) ImageComponent = ExpoImage;
|
|
15
|
+
} catch {
|
|
16
|
+
// expo-image not installed, use React Native Image
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
const ProductsListViewComponent = ({
|
|
20
|
+
data,
|
|
21
|
+
totalResults,
|
|
22
|
+
onViewAll,
|
|
23
|
+
onItemPress
|
|
24
|
+
}) => {
|
|
25
|
+
if (!data || !data.length) return null;
|
|
26
|
+
const [priceWidth, setPriceWidth] = (0, _react.useState)(0);
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
28
|
+
style: styles.wrapper
|
|
29
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
30
|
+
showsVerticalScrollIndicator: false,
|
|
31
|
+
contentContainerStyle: styles.listContent
|
|
32
|
+
}, data.map((item, index) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
33
|
+
key: item.id,
|
|
34
|
+
onPress: () => onItemPress?.(item),
|
|
35
|
+
activeOpacity: 0.8
|
|
36
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
37
|
+
style: styles.row
|
|
38
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
39
|
+
style: styles.left
|
|
40
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
41
|
+
style: styles.serial
|
|
42
|
+
}, index + 1, "."), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
43
|
+
numberOfLines: 1,
|
|
44
|
+
ellipsizeMode: "tail",
|
|
45
|
+
style: styles.title
|
|
46
|
+
}, item.short_title)), item.total_sales_price ? /*#__PURE__*/_react.default.createElement(_reactNative.View, {
|
|
47
|
+
style: [styles.priceContainer, priceWidth ? {
|
|
48
|
+
width: priceWidth
|
|
49
|
+
} : null]
|
|
50
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
51
|
+
style: styles.price,
|
|
52
|
+
onLayout: e => {
|
|
53
|
+
const w = e.nativeEvent.layout.width;
|
|
54
|
+
if (w > priceWidth) setPriceWidth(w);
|
|
55
|
+
}
|
|
56
|
+
}, "$", item.total_sales_price)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null))))), /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
57
|
+
style: styles.button,
|
|
58
|
+
activeOpacity: 0.8,
|
|
59
|
+
onPress: onViewAll
|
|
60
|
+
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
61
|
+
style: styles.buttonText
|
|
62
|
+
}, `View All ${totalResults} Results`), /*#__PURE__*/_react.default.createElement(_reactNative.Image, {
|
|
63
|
+
source: {
|
|
64
|
+
uri: "https://cdn.vdbapp.com/ai/chat-widget/assets/img/right.svg"
|
|
65
|
+
},
|
|
66
|
+
resizeMode: "contain",
|
|
67
|
+
style: {
|
|
68
|
+
width: 20,
|
|
69
|
+
height: 20,
|
|
70
|
+
tintColor: "#fff"
|
|
71
|
+
}
|
|
72
|
+
})));
|
|
73
|
+
};
|
|
74
|
+
const styles = _reactNative.StyleSheet.create({
|
|
75
|
+
wrapper: {
|
|
76
|
+
paddingHorizontal: 8
|
|
77
|
+
},
|
|
78
|
+
listContent: {
|
|
79
|
+
// No extra padding/margins
|
|
80
|
+
},
|
|
81
|
+
row: {
|
|
82
|
+
flexDirection: "row",
|
|
83
|
+
justifyContent: "space-between",
|
|
84
|
+
alignItems: "center",
|
|
85
|
+
paddingVertical: 6,
|
|
86
|
+
backgroundColor: "#fff"
|
|
87
|
+
},
|
|
88
|
+
left: {
|
|
89
|
+
flexDirection: "row",
|
|
90
|
+
alignItems: "center",
|
|
91
|
+
gap: 4,
|
|
92
|
+
flex: 1,
|
|
93
|
+
minWidth: 0
|
|
94
|
+
},
|
|
95
|
+
serial: {
|
|
96
|
+
fontSize: 13,
|
|
97
|
+
color: "#020001",
|
|
98
|
+
fontWeight: "500"
|
|
99
|
+
},
|
|
100
|
+
title: {
|
|
101
|
+
flexShrink: 1,
|
|
102
|
+
fontSize: 13,
|
|
103
|
+
color: "#3378F6",
|
|
104
|
+
fontWeight: "500"
|
|
105
|
+
},
|
|
106
|
+
price: {
|
|
107
|
+
fontSize: 13,
|
|
108
|
+
fontWeight: "500",
|
|
109
|
+
color: "#020001",
|
|
110
|
+
textAlign: "left"
|
|
111
|
+
},
|
|
112
|
+
priceContainer: {
|
|
113
|
+
alignItems: "flex-start",
|
|
114
|
+
justifyContent: "center"
|
|
115
|
+
},
|
|
116
|
+
button: {
|
|
117
|
+
marginTop: 12,
|
|
118
|
+
marginHorizontal: 12,
|
|
119
|
+
alignSelf: "center",
|
|
120
|
+
paddingHorizontal: 16,
|
|
121
|
+
paddingVertical: 6,
|
|
122
|
+
backgroundColor: "#292735",
|
|
123
|
+
borderRadius: 8,
|
|
124
|
+
alignItems: "center",
|
|
125
|
+
gap: 16,
|
|
126
|
+
width: "100%",
|
|
127
|
+
flexDirection: "row",
|
|
128
|
+
justifyContent: "center",
|
|
129
|
+
alignContent: "center"
|
|
130
|
+
},
|
|
131
|
+
buttonText: {
|
|
132
|
+
color: "#fff",
|
|
133
|
+
fontSize: 14,
|
|
134
|
+
fontWeight: "600"
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
const ProductsListView = /*#__PURE__*/(0, _react.memo)(ProductsListViewComponent);
|
|
138
|
+
var _default = exports.default = ProductsListView;
|
|
139
|
+
//# sourceMappingURL=ProductsListView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ImageComponent","Image","Platform","OS","ExpoImage","ProductsListViewComponent","data","totalResults","onViewAll","onItemPress","length","priceWidth","setPriceWidth","useState","createElement","View","style","styles","wrapper","ScrollView","showsVerticalScrollIndicator","contentContainerStyle","listContent","map","item","index","TouchableOpacity","key","id","onPress","activeOpacity","row","left","Text","serial","numberOfLines","ellipsizeMode","title","short_title","total_sales_price","priceContainer","width","price","onLayout","w","nativeEvent","layout","Fragment","button","buttonText","source","uri","resizeMode","height","tintColor","StyleSheet","create","paddingHorizontal","flexDirection","justifyContent","alignItems","paddingVertical","backgroundColor","gap","flex","minWidth","fontSize","color","fontWeight","flexShrink","textAlign","marginTop","marginHorizontal","alignSelf","borderRadius","alignContent","ProductsListView","memo","_default","exports"],"sourceRoot":"../../../src","sources":["components/ProductsListView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,16 +9,17 @@ var _reactNative = require("react-native");
|
|
|
9
9
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
10
|
const SuggestionsRowComponent = ({
|
|
11
11
|
suggestions,
|
|
12
|
-
onSelect
|
|
12
|
+
onSelect,
|
|
13
|
+
variant = "default"
|
|
13
14
|
}) => {
|
|
14
15
|
if (!suggestions.length) return null;
|
|
15
16
|
return /*#__PURE__*/_react.default.createElement(_reactNative.ScrollView, {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
showsVerticalScrollIndicator: false,
|
|
18
|
+
contentContainerStyle: [styles.container, variant === "inline" && styles.containerInline],
|
|
19
|
+
style: [styles.scroll, variant === "inline" && styles.scrollInline]
|
|
19
20
|
}, suggestions.map(s => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
|
|
20
21
|
key: s,
|
|
21
|
-
style: styles.chip,
|
|
22
|
+
style: [styles.chip, variant === "inline" && styles.chipInline],
|
|
22
23
|
onPress: () => onSelect(s),
|
|
23
24
|
activeOpacity: 0.75
|
|
24
25
|
}, /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
@@ -26,32 +27,49 @@ const SuggestionsRowComponent = ({
|
|
|
26
27
|
}, s))));
|
|
27
28
|
};
|
|
28
29
|
const styles = _reactNative.StyleSheet.create({
|
|
30
|
+
scroll: {
|
|
31
|
+
maxWidth: "80%",
|
|
32
|
+
alignSelf: "flex-start",
|
|
33
|
+
paddingHorizontal: 8
|
|
34
|
+
},
|
|
35
|
+
scrollInline: {
|
|
36
|
+
maxWidth: "100%",
|
|
37
|
+
alignSelf: "stretch",
|
|
38
|
+
paddingHorizontal: 0
|
|
39
|
+
},
|
|
29
40
|
container: {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
41
|
+
paddingVertical: 0,
|
|
42
|
+
flexDirection: "column",
|
|
43
|
+
justifyContent: "center",
|
|
44
|
+
alignItems: "center",
|
|
45
|
+
gap: 4,
|
|
46
|
+
alignSelf: "stretch"
|
|
47
|
+
// backgroundColor: "#EDEDF2",
|
|
48
|
+
},
|
|
49
|
+
containerInline: {
|
|
50
|
+
// inside bubble, rely on bubble background
|
|
51
|
+
gap: 6
|
|
34
52
|
},
|
|
35
53
|
chip: {
|
|
36
|
-
backgroundColor: "#
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
54
|
+
backgroundColor: "#EDEDF2",
|
|
55
|
+
borderRadius: 4,
|
|
56
|
+
paddingHorizontal: 8,
|
|
57
|
+
paddingVertical: 6,
|
|
58
|
+
width: "100%",
|
|
59
|
+
alignSelf: "stretch",
|
|
60
|
+
justifyContent: "center",
|
|
61
|
+
alignItems: "flex-start",
|
|
62
|
+
borderWidth: 1,
|
|
63
|
+
borderColor: "#E0E0E0"
|
|
64
|
+
},
|
|
65
|
+
chipInline: {
|
|
66
|
+
backgroundColor: "#FFFFFF"
|
|
49
67
|
},
|
|
50
68
|
chipText: {
|
|
51
69
|
fontSize: 14,
|
|
52
70
|
color: "#1A1A1A",
|
|
53
71
|
fontWeight: "500",
|
|
54
|
-
|
|
72
|
+
textAlign: "left"
|
|
55
73
|
}
|
|
56
74
|
});
|
|
57
75
|
const SuggestionsRow = /*#__PURE__*/(0, _react.memo)(SuggestionsRowComponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SuggestionsRowComponent","suggestions","onSelect","length","createElement","ScrollView","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SuggestionsRowComponent","suggestions","onSelect","variant","length","createElement","ScrollView","showsVerticalScrollIndicator","contentContainerStyle","styles","container","containerInline","style","scroll","scrollInline","map","s","TouchableOpacity","key","chip","chipInline","onPress","activeOpacity","Text","chipText","StyleSheet","create","maxWidth","alignSelf","paddingHorizontal","paddingVertical","flexDirection","justifyContent","alignItems","gap","backgroundColor","borderRadius","width","borderWidth","borderColor","fontSize","color","fontWeight","textAlign","SuggestionsRow","memo","_default","exports"],"sourceRoot":"../../../src","sources":["components/SuggestionsRow.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.fetchConversationId = exports.FeedbackAction = void 0;
|
|
6
|
+
exports.fetchConversationId = exports.FeedbackAction = exports.DeviceType = exports.AnalyticsEventNames = void 0;
|
|
7
7
|
exports.formatToTime = formatToTime;
|
|
8
|
+
exports.getUserDetails = exports.getDeviceType = void 0;
|
|
8
9
|
var _storage = require("../storage");
|
|
9
10
|
function formatToTime(timestamp) {
|
|
10
11
|
const date = new Date(timestamp);
|
|
@@ -27,11 +28,56 @@ const fetchConversationId = async _priceMode => {
|
|
|
27
28
|
const conversations = await _storage.Storage.getJSON("vdbchat_conversations", {});
|
|
28
29
|
if (!conversations) return null;
|
|
29
30
|
let priceMode = _priceMode;
|
|
30
|
-
if (
|
|
31
|
-
const
|
|
32
|
-
|
|
31
|
+
if (priceMode === undefined) {
|
|
32
|
+
const userInfo = await _storage.Storage.getJSON("persist:userInfo", {});
|
|
33
|
+
const userData = userInfo?.user;
|
|
34
|
+
priceMode = String(userData?.price_mode) || "";
|
|
33
35
|
}
|
|
34
36
|
return conversations[priceMode]?.conversation_id || null;
|
|
35
37
|
};
|
|
36
38
|
exports.fetchConversationId = fetchConversationId;
|
|
39
|
+
const getUserDetails = async () => {
|
|
40
|
+
try {
|
|
41
|
+
const stored = await _storage.Storage.getJSON("persist:userInfo", {});
|
|
42
|
+
if (!stored?.user) return null;
|
|
43
|
+
|
|
44
|
+
// If user is stored as a JSON string, parse it
|
|
45
|
+
if (typeof stored.user === "string") {
|
|
46
|
+
try {
|
|
47
|
+
return JSON.parse(stored.user);
|
|
48
|
+
} catch {
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return stored.user;
|
|
53
|
+
} catch {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.getUserDetails = getUserDetails;
|
|
58
|
+
let DeviceType = exports.DeviceType = /*#__PURE__*/function (DeviceType) {
|
|
59
|
+
DeviceType["WEB"] = "web";
|
|
60
|
+
DeviceType["IOS"] = "ios";
|
|
61
|
+
DeviceType["ANDROID"] = "android";
|
|
62
|
+
return DeviceType;
|
|
63
|
+
}({});
|
|
64
|
+
const getDeviceType = platform => {
|
|
65
|
+
switch (platform) {
|
|
66
|
+
case DeviceType.WEB:
|
|
67
|
+
return 0;
|
|
68
|
+
case DeviceType.IOS:
|
|
69
|
+
return 1;
|
|
70
|
+
case DeviceType.ANDROID:
|
|
71
|
+
return 2;
|
|
72
|
+
default:
|
|
73
|
+
return 2;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
exports.getDeviceType = getDeviceType;
|
|
77
|
+
let AnalyticsEventNames = exports.AnalyticsEventNames = /*#__PURE__*/function (AnalyticsEventNames) {
|
|
78
|
+
AnalyticsEventNames["WIDGET_OPENED"] = "ai_chat_widget_opened";
|
|
79
|
+
AnalyticsEventNames["WIDGET_CLOSED"] = "ai_chat_widget_closed";
|
|
80
|
+
AnalyticsEventNames["CHAT_CLEARED"] = "ai_chat_cleared";
|
|
81
|
+
return AnalyticsEventNames;
|
|
82
|
+
}({});
|
|
37
83
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_storage","require","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","exports","fetchConversationId","_priceMode","conversations","Storage","getJSON","priceMode","userData","price_mode","conversation_id"],"sourceRoot":"../../../src","sources":["components/utils.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_storage","require","formatToTime","timestamp","date","Date","hours","getHours","minutes","getMinutes","ampm","mins","FeedbackAction","exports","fetchConversationId","_priceMode","conversations","Storage","getJSON","priceMode","undefined","userInfo","userData","user","String","price_mode","conversation_id","getUserDetails","stored","JSON","parse","DeviceType","getDeviceType","platform","WEB","IOS","ANDROID","AnalyticsEventNames"],"sourceRoot":"../../../src","sources":["components/utils.ts"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEO,SAASC,YAAYA,CAACC,SAAiB,EAAU;EACtD,MAAMC,IAAI,GAAG,IAAIC,IAAI,CAACF,SAAS,CAAC;EAEhC,IAAIG,KAAK,GAAGF,IAAI,CAACG,QAAQ,CAAC,CAAC;EAC3B,MAAMC,OAAO,GAAGJ,IAAI,CAACK,UAAU,CAAC,CAAC;EACjC,MAAMC,IAAI,GAAGJ,KAAK,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI;EAEtCA,KAAK,GAAGA,KAAK,GAAG,EAAE;EAClBA,KAAK,GAAGA,KAAK,GAAGA,KAAK,GAAG,EAAE,CAAC,CAAC;;EAE5B,MAAMK,IAAI,GAAGH,OAAO,GAAG,EAAE,GAAG,IAAIA,OAAO,EAAE,GAAGA,OAAO;EAEnD,OAAO,GAAGF,KAAK,IAAIK,IAAI,IAAID,IAAI,EAAE;AACnC;AAAC,IAEWE,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAMnB,MAAME,mBAAmB,GAAG,MACjCC,UAAkB,IACS;EAC3B,MAAMC,aAAa,GAAG,MAAMC,gBAAO,CAACC,OAAO,CACzC,uBAAuB,EACvB,CAAC,CACH,CAAC;EACD,IAAI,CAACF,aAAa,EAAE,OAAO,IAAI;EAE/B,IAAIG,SAAS,GAAGJ,UAAU;EAC1B,IAAII,SAAS,KAAKC,SAAS,EAAE;IAC3B,MAAMC,QAAQ,GAAG,MAAMJ,gBAAO,CAACC,OAAO,CACpC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,MAAMI,QAAQ,GAAGD,QAAQ,EAAEE,IAAmB;IAC9CJ,SAAS,GAAGK,MAAM,CAACF,QAAQ,EAAEG,UAAU,CAAC,IAAI,EAAE;EAChD;EACA,OAAOT,aAAa,CAACG,SAAS,CAAC,EAAEO,eAAe,IAAI,IAAI;AAC1D,CAAC;AAACb,OAAA,CAAAC,mBAAA,GAAAA,mBAAA;AAeK,MAAMa,cAAc,GAAG,MAAAA,CAAA,KAAyC;EACrE,IAAI;IACF,MAAMC,MAAM,GAAG,MAAMX,gBAAO,CAACC,OAAO,CAClC,kBAAkB,EAClB,CAAC,CACH,CAAC;IACD,IAAI,CAACU,MAAM,EAAEL,IAAI,EAAE,OAAO,IAAI;;IAE9B;IACA,IAAI,OAAOK,MAAM,CAACL,IAAI,KAAK,QAAQ,EAAE;MACnC,IAAI;QACF,OAAOM,IAAI,CAACC,KAAK,CAACF,MAAM,CAACL,IAAI,CAAC;MAChC,CAAC,CAAC,MAAM;QACN,OAAO,IAAI;MACb;IACF;IAEA,OAAOK,MAAM,CAACL,IAAI;EACpB,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF,CAAC;AAACV,OAAA,CAAAc,cAAA,GAAAA,cAAA;AAAA,IAEUI,UAAU,GAAAlB,OAAA,CAAAkB,UAAA,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA;AAMf,MAAMC,aAAa,GAAIC,QAAiB,IAAK;EAClD,QAAQA,QAAQ;IACd,KAAKF,UAAU,CAACG,GAAG;MACjB,OAAO,CAAC;IACV,KAAKH,UAAU,CAACI,GAAG;MACjB,OAAO,CAAC;IACV,KAAKJ,UAAU,CAACK,OAAO;MACrB,OAAO,CAAC;IACV;MACE,OAAO,CAAC;EACZ;AACF,CAAC;AAACvB,OAAA,CAAAmB,aAAA,GAAAA,aAAA;AAAA,IAEUK,mBAAmB,GAAAxB,OAAA,CAAAwB,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useAnalyticsClient = exports.AnalyticsClientProvider = exports.AnalyticsClientContext = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
|
+
const AnalyticsClientContext = exports.AnalyticsClientContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
10
|
+
const useAnalyticsClient = () => (0, _react.useContext)(AnalyticsClientContext);
|
|
11
|
+
exports.useAnalyticsClient = useAnalyticsClient;
|
|
12
|
+
const AnalyticsClientProvider = ({
|
|
13
|
+
client,
|
|
14
|
+
children
|
|
15
|
+
}) => /*#__PURE__*/_react.default.createElement(AnalyticsClientContext.Provider, {
|
|
16
|
+
value: client
|
|
17
|
+
}, children);
|
|
18
|
+
exports.AnalyticsClientProvider = AnalyticsClientProvider;
|
|
19
|
+
//# sourceMappingURL=AnalyticsClientContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnalyticsClientContext","exports","createContext","undefined","useAnalyticsClient","useContext","AnalyticsClientProvider","client","children","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["contexts/AnalyticsClientContext.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAAyD,SAAAD,wBAAAE,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAJ,uBAAA,YAAAA,CAAAE,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAGlD,MAAMkB,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,gBAAG,IAAAE,oBAAa,EACjDC,SACF,CAAC;AAEM,MAAMC,kBAAkB,GAAGA,CAAA,KAAM,IAAAC,iBAAU,EAACL,sBAAsB,CAAC;AAACC,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAEpE,MAAME,uBAAuB,GAAGA,CAAC;EACtCC,MAAM;EACNC;AAIF,CAAC,kBACC9B,MAAA,CAAAa,OAAA,CAAAkB,aAAA,CAACT,sBAAsB,CAACU,QAAQ;EAACC,KAAK,EAAEJ;AAAO,GAC5CC,QAC8B,CAClC;AAACP,OAAA,CAAAK,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getUserAnalyticsPayload = exports.formatOSName = void 0;
|
|
7
|
+
exports.isBot = isBot;
|
|
8
|
+
exports.useUserAnalytics = exports.isSegmentUserAgent = void 0;
|
|
9
|
+
var _reactNative = require("react-native");
|
|
10
|
+
var _utils = require("../components/utils");
|
|
11
|
+
var _AnalyticsClientContext = require("../contexts/AnalyticsClientContext");
|
|
12
|
+
const getSystemTypeEnum = deviceType => {
|
|
13
|
+
let type = "web";
|
|
14
|
+
if (deviceType) {
|
|
15
|
+
switch (deviceType) {
|
|
16
|
+
case "Linux":
|
|
17
|
+
type = "android";
|
|
18
|
+
break;
|
|
19
|
+
case "iPhone":
|
|
20
|
+
type = "ios";
|
|
21
|
+
break;
|
|
22
|
+
default:
|
|
23
|
+
type = "web";
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
type = String(_reactNative.Platform.OS);
|
|
28
|
+
}
|
|
29
|
+
return (0, _utils.getDeviceType)(type).toString();
|
|
30
|
+
};
|
|
31
|
+
const formatOSName = rawOsName => {
|
|
32
|
+
if (!rawOsName) return "";
|
|
33
|
+
const osName = rawOsName.toLowerCase();
|
|
34
|
+
const osMap = {
|
|
35
|
+
android: "Android",
|
|
36
|
+
ios: "iOS",
|
|
37
|
+
ipad: "iPadOS",
|
|
38
|
+
ipados: "iPadOS",
|
|
39
|
+
windows: "Windows",
|
|
40
|
+
macos: "macOS",
|
|
41
|
+
mac: "macOS",
|
|
42
|
+
linux: "Linux",
|
|
43
|
+
web: "Web",
|
|
44
|
+
tizen: "Tizen",
|
|
45
|
+
harmonyos: "HarmonyOS",
|
|
46
|
+
fireos: "Fire OS"
|
|
47
|
+
};
|
|
48
|
+
for (const key of Object.keys(osMap)) {
|
|
49
|
+
if (osName.includes(key)) {
|
|
50
|
+
return osMap[key];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return rawOsName.charAt(0).toUpperCase() + rawOsName.slice(1);
|
|
54
|
+
};
|
|
55
|
+
exports.formatOSName = formatOSName;
|
|
56
|
+
const getUserAnalyticsPayload = async () => {
|
|
57
|
+
const user = await (0, _utils.getUserDetails)();
|
|
58
|
+
const deviceDetails = _reactNative.Platform.OS === "web" ? {
|
|
59
|
+
system_type_enum: getSystemTypeEnum(null),
|
|
60
|
+
platform_action_enum: "0"
|
|
61
|
+
} : {};
|
|
62
|
+
return {
|
|
63
|
+
user_company_id: user?.company_id?.toString(),
|
|
64
|
+
user_company_name: user?.company,
|
|
65
|
+
user_email: user?.email,
|
|
66
|
+
user_id: user?.id?.toString(),
|
|
67
|
+
user_name: user?.first_name ? `${user?.first_name} ${user?.last_name}` : undefined,
|
|
68
|
+
user_price_mode: user?.price_mode?.toString(),
|
|
69
|
+
price_mode: user?.price_mode?.toString(),
|
|
70
|
+
has_plan_details: user?.plan_details ? true : false,
|
|
71
|
+
userAgent: _reactNative.Platform.OS === "web" ? navigator.userAgent : "",
|
|
72
|
+
...deviceDetails
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
exports.getUserAnalyticsPayload = getUserAnalyticsPayload;
|
|
76
|
+
const isSegmentUserAgent = userAgent => {
|
|
77
|
+
if (!userAgent) return false;
|
|
78
|
+
|
|
79
|
+
// Regex to match Segment's specific Safari-like pattern
|
|
80
|
+
const segmentPattern = /^Mozilla\/5\.0 \([^;]+; CPU [^)]+ like Mac OS X\) AppleWebKit\/600\.1\.4 \(KHTML, like Gecko\) Version\/\d\.0 Mobile\/10B329 Safari\/8536\.25$/;
|
|
81
|
+
return segmentPattern.test(userAgent);
|
|
82
|
+
};
|
|
83
|
+
exports.isSegmentUserAgent = isSegmentUserAgent;
|
|
84
|
+
function isBot(userAgent = "") {
|
|
85
|
+
if (!userAgent && _reactNative.Platform.OS === "web") return true;
|
|
86
|
+
const botPatterns = [/bot/i,
|
|
87
|
+
// "Googlebot", "Bingbot"
|
|
88
|
+
/crawl/i,
|
|
89
|
+
// "crawler"
|
|
90
|
+
/spider/i,
|
|
91
|
+
// "spider"
|
|
92
|
+
/HeadlessChrome/i,
|
|
93
|
+
// Puppeteer/Headless
|
|
94
|
+
/PhantomJS/i,
|
|
95
|
+
// Old automation
|
|
96
|
+
/slurp/i,
|
|
97
|
+
// Yahoo Slurp bot
|
|
98
|
+
/curl/i,
|
|
99
|
+
// CLI traffic
|
|
100
|
+
/wget/i,
|
|
101
|
+
// CLI downloads
|
|
102
|
+
/httpclient/i // Generic clients
|
|
103
|
+
];
|
|
104
|
+
return botPatterns.some(pattern => pattern.test(userAgent));
|
|
105
|
+
}
|
|
106
|
+
const useUserAnalytics = () => {
|
|
107
|
+
// This will return undefined if not wrapped in provider, which is fine
|
|
108
|
+
const analyticsClient = (0, _AnalyticsClientContext.useAnalyticsClient)();
|
|
109
|
+
const _track = async (eventName, options) => {
|
|
110
|
+
const userAnalyticsPayload = await getUserAnalyticsPayload();
|
|
111
|
+
if (isSegmentUserAgent(userAnalyticsPayload?.userAgent)) {
|
|
112
|
+
console.warn("Skipping tracking for Segment user agent:", userAnalyticsPayload.userAgent);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (isBot(userAnalyticsPayload?.userAgent)) {
|
|
116
|
+
console.warn("Skipping tracking for bot user agent:", userAnalyticsPayload.userAgent);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const client = analyticsClient || window.analytics;
|
|
120
|
+
if (!client) return;
|
|
121
|
+
const user = await (0, _utils.getUserDetails)();
|
|
122
|
+
if (!user?.id) {
|
|
123
|
+
console.error("Track Event tracked without user:", eventName, JSON.stringify(options));
|
|
124
|
+
console.error("Can't identify as user is not logged in", JSON.stringify(user));
|
|
125
|
+
} else {
|
|
126
|
+
await client.identify(`${user.id}`, {
|
|
127
|
+
name: `${user.first_name} ${user.last_name}`,
|
|
128
|
+
email: user.email,
|
|
129
|
+
country: user.country
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
await client.track(eventName, {
|
|
133
|
+
...userAnalyticsPayload,
|
|
134
|
+
...options
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
const _identify = async (userId, userTraits) => {
|
|
138
|
+
const client = analyticsClient || window.analytics;
|
|
139
|
+
if (!client) return;
|
|
140
|
+
await client.identify(userId, userTraits);
|
|
141
|
+
};
|
|
142
|
+
const trackEvent = async (eventName, options) => {
|
|
143
|
+
const userAnalyticsPayload = await getUserAnalyticsPayload();
|
|
144
|
+
const client = analyticsClient || window.analytics;
|
|
145
|
+
if (!client) return;
|
|
146
|
+
await client.track(eventName, {
|
|
147
|
+
...userAnalyticsPayload,
|
|
148
|
+
...options
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
return {
|
|
152
|
+
trackEvent,
|
|
153
|
+
_identify,
|
|
154
|
+
_track
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
exports.useUserAnalytics = useUserAnalytics;
|
|
158
|
+
//# sourceMappingURL=useAnalytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_utils","_AnalyticsClientContext","getSystemTypeEnum","deviceType","type","String","Platform","OS","getDeviceType","toString","formatOSName","rawOsName","osName","toLowerCase","osMap","android","ios","ipad","ipados","windows","macos","mac","linux","web","tizen","harmonyos","fireos","key","Object","keys","includes","charAt","toUpperCase","slice","exports","getUserAnalyticsPayload","user","getUserDetails","deviceDetails","system_type_enum","platform_action_enum","user_company_id","company_id","user_company_name","company","user_email","email","user_id","id","user_name","first_name","last_name","undefined","user_price_mode","price_mode","has_plan_details","plan_details","userAgent","navigator","isSegmentUserAgent","segmentPattern","test","isBot","botPatterns","some","pattern","useUserAnalytics","analyticsClient","useAnalyticsClient","_track","eventName","options","userAnalyticsPayload","console","warn","client","window","analytics","error","JSON","stringify","identify","name","country","track","_identify","userId","userTraits","trackEvent"],"sourceRoot":"../../../src","sources":["hooks/useAnalytics.tsx"],"mappings":"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","ignoreList":[]}
|