react-native-glance-chat 0.1.21 → 0.1.23
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/android/build.gradle
CHANGED
|
@@ -11,7 +11,7 @@ buildscript {
|
|
|
11
11
|
// (produces 1.0.0-local) and set sdkVersion to "1.0.0-local" to resolve from mavenLocal().
|
|
12
12
|
// 1.0.16 is the first SDK release with `GlanceChatSDK.setUser`; it must be published
|
|
13
13
|
// before this wrapper version can build or ship.
|
|
14
|
-
sdkVersion: "1.0.
|
|
14
|
+
sdkVersion: "1.0.27"
|
|
15
15
|
]
|
|
16
16
|
|
|
17
17
|
ext.getExtOrDefault = { prop ->
|
package/lib/module/index.js
CHANGED
|
@@ -1,6 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
3
4
|
import GlanceChat from "./NativeGlanceChat.js";
|
|
5
|
+
// The names the native module emits under — `GlanceChatModuleImpl.EVENT_*`.
|
|
6
|
+
const EVENT_NAMES = {
|
|
7
|
+
onProductClick: 'onProductClick',
|
|
8
|
+
onDeeplinkClick: 'onDeeplinkClick',
|
|
9
|
+
onAddToCart: 'onAddToCart',
|
|
10
|
+
onViewCart: 'onViewCart',
|
|
11
|
+
onTryOnStatesChanged: 'onTryOnStatesChanged',
|
|
12
|
+
onSessionExpired: 'onSessionExpired'
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
// The native module delivers every event through `RCTDeviceEventEmitter`
|
|
16
|
+
// (`GlanceChatModuleImpl.emit`), and only there. `DeviceEventEmitter` is that same emitter,
|
|
17
|
+
// so this is the one place a listener can be attached.
|
|
18
|
+
//
|
|
19
|
+
// It is also the only place one *can* be: an `EventEmitter<...>` property in the codegen
|
|
20
|
+
// spec generates a native-side `emit<Name>()` helper and nothing else (see
|
|
21
|
+
// `GenerateModuleJavaSpec.js`), so the spec offers no subscribe function, and the native
|
|
22
|
+
// class implements no `on<Name>` methods. Calling `GlanceChat.onViewCart(listener)` as
|
|
23
|
+
// though it were one therefore never attached a listener — product taps and "View Cart"
|
|
24
|
+
// were emitted with nothing listening.
|
|
25
|
+
function subscribe(eventName, listener) {
|
|
26
|
+
return DeviceEventEmitter.addListener(eventName, listener);
|
|
27
|
+
}
|
|
28
|
+
|
|
4
29
|
// Native UI components (Fabric). Each hosts the corresponding SDK Composable.
|
|
5
30
|
export { default as GlanceChatOverlay } from './GlanceChatOverlayNativeComponent';
|
|
6
31
|
export { default as GlanceProductTryOnWidget } from './GlanceProductTryOnWidgetNativeComponent';
|
|
@@ -53,22 +78,22 @@ export const Glance = {
|
|
|
53
78
|
},
|
|
54
79
|
// --- Event subscriptions -------------------------------------------------
|
|
55
80
|
onProductClick(listener) {
|
|
56
|
-
return
|
|
81
|
+
return subscribe(EVENT_NAMES.onProductClick, listener);
|
|
57
82
|
},
|
|
58
83
|
onDeeplinkClick(listener) {
|
|
59
|
-
return
|
|
84
|
+
return subscribe(EVENT_NAMES.onDeeplinkClick, listener);
|
|
60
85
|
},
|
|
61
86
|
onAddToCart(listener) {
|
|
62
|
-
return
|
|
87
|
+
return subscribe(EVENT_NAMES.onAddToCart, listener);
|
|
63
88
|
},
|
|
64
89
|
onViewCart(listener) {
|
|
65
|
-
return
|
|
90
|
+
return subscribe(EVENT_NAMES.onViewCart, listener);
|
|
66
91
|
},
|
|
67
92
|
onTryOnStatesChanged(listener) {
|
|
68
|
-
return
|
|
93
|
+
return subscribe(EVENT_NAMES.onTryOnStatesChanged, listener);
|
|
69
94
|
},
|
|
70
95
|
onSessionExpired(listener) {
|
|
71
|
-
return
|
|
96
|
+
return subscribe(EVENT_NAMES.onSessionExpired, listener);
|
|
72
97
|
}
|
|
73
98
|
};
|
|
74
99
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["GlanceChat","default","GlanceChatOverlay","GlanceProductTryOnWidget","GlanceMixAndMatchWidget","GlancePdpSuggestions","GlanceEnvironment","DEVELOPMENT","UAT","PRODUCTION","Glance","initialize","partnerId","config","userId","setUser","destroy","isInitialized","isLoggedIn","setPageContext","context","metadata","clearPageContext","closeChat","openChatWithSuggestion","suggestion","handleDeepLink","uri","startOnboarding","variantId"
|
|
1
|
+
{"version":3,"names":["DeviceEventEmitter","GlanceChat","EVENT_NAMES","onProductClick","onDeeplinkClick","onAddToCart","onViewCart","onTryOnStatesChanged","onSessionExpired","subscribe","eventName","listener","addListener","default","GlanceChatOverlay","GlanceProductTryOnWidget","GlanceMixAndMatchWidget","GlancePdpSuggestions","GlanceEnvironment","DEVELOPMENT","UAT","PRODUCTION","Glance","initialize","partnerId","config","userId","setUser","destroy","isInitialized","isLoggedIn","setPageContext","context","metadata","clearPageContext","closeChat","openChatWithSuggestion","suggestion","handleDeepLink","uri","startOnboarding","variantId"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,cAAc;AACjD,OAAOC,UAAU,MAAM,uBAAoB;AAe3C;AACA,MAAMC,WAAW,GAAG;EAClBC,cAAc,EAAE,gBAAgB;EAChCC,eAAe,EAAE,iBAAiB;EAClCC,WAAW,EAAE,aAAa;EAC1BC,UAAU,EAAE,YAAY;EACxBC,oBAAoB,EAAE,sBAAsB;EAC5CC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,SAASA,CAAIC,SAAiB,EAAEC,QAA4B,EAAE;EACrE,OAAOX,kBAAkB,CAACY,WAAW,CAACF,SAAS,EAAEC,QAAQ,CAAC;AAC5D;;AAEA;AACA,SAASE,OAAO,IAAIC,iBAAiB,QAAQ,oCAAoC;AACjF,SAASD,OAAO,IAAIE,wBAAwB,QAAQ,2CAA2C;AAC/F,SAASF,OAAO,IAAIG,uBAAuB,QAAQ,0CAA0C;AAC7F,SAASH,OAAO,IAAII,oBAAoB,QAAQ,uCAAuC;;AAEvF;AACA,OAAO,MAAMC,iBAAiB,GAAG;EAC/BC,WAAW,EAAE,aAAa;EAC1BC,GAAG,EAAE,KAAK;EACVC,UAAU,EAAE;AACd,CAAU;AAIV;AACA;AACA;AACA;AACA,OAAO,MAAMC,MAAM,GAAG;EACpBC,UAAUA,CACRC,SAAiB,EACjBC,MAAwB,EACxBC,MAAsB,EAChB;IACNzB,UAAU,CAACsB,UAAU,CAACC,SAAS,EAAEC,MAAM,EAAEC,MAAM,IAAI,IAAI,CAAC;EAC1D,CAAC;EACDC,OAAOA,CAACD,MAAc,EAAQ;IAC5BzB,UAAU,CAAC0B,OAAO,CAACD,MAAM,CAAC;EAC5B,CAAC;EACDE,OAAOA,CAAA,EAAS;IACd3B,UAAU,CAAC2B,OAAO,CAAC,CAAC;EACtB,CAAC;EACDC,aAAaA,CAAA,EAAY;IACvB,OAAO5B,UAAU,CAAC4B,aAAa,CAAC,CAAC;EACnC,CAAC;EACDC,UAAUA,CAAA,EAAY;IACpB,OAAO7B,UAAU,CAAC6B,UAAU,CAAC,CAAC;EAChC,CAAC;EACDC,cAAcA,CAACC,OAAe,EAAEC,QAAgC,GAAG,CAAC,CAAC,EAAQ;IAC3EhC,UAAU,CAAC8B,cAAc,CAACC,OAAO,EAAEC,QAAQ,CAAC;EAC9C,CAAC;EACDC,gBAAgBA,CAAA,EAAS;IACvBjC,UAAU,CAACiC,gBAAgB,CAAC,CAAC;EAC/B,CAAC;EACDC,SAASA,CAAA,EAAS;IAChBlC,UAAU,CAACkC,SAAS,CAAC,CAAC;EACxB,CAAC;EACDC,sBAAsBA,CAACC,UAAkB,EAAQ;IAC/CpC,UAAU,CAACmC,sBAAsB,CAACC,UAAU,CAAC;EAC/C,CAAC;EACDC,cAAcA,CAACC,GAAW,EAAW;IACnC,OAAOtC,UAAU,CAACqC,cAAc,CAACC,GAAG,CAAC;EACvC,CAAC;EACDC,eAAeA,CAACC,SAAkB,EAAQ;IACxCxC,UAAU,CAACuC,eAAe,CAACC,SAAS,CAAC;EACvC,CAAC;EAED;EACAtC,cAAcA,CAACQ,QAA4C,EAAE;IAC3D,OAAOF,SAAS,CAACP,WAAW,CAACC,cAAc,EAAEQ,QAAQ,CAAC;EACxD,CAAC;EACDP,eAAeA,CAACO,QAA+B,EAAE;IAC/C,OAAOF,SAAS,CAACP,WAAW,CAACE,eAAe,EAAEO,QAAQ,CAAC;EACzD,CAAC;EACDN,WAAWA,CAACM,QAAyC,EAAE;IACrD,OAAOF,SAAS,CAACP,WAAW,CAACG,WAAW,EAAEM,QAAQ,CAAC;EACrD,CAAC;EACDL,UAAUA,CAACK,QAAoB,EAAE;IAC/B,OAAOF,SAAS,CAACP,WAAW,CAACI,UAAU,EAAEK,QAAiC,CAAC;EAC7E,CAAC;EACDJ,oBAAoBA,CAACI,QAA2C,EAAE;IAChE,OAAOF,SAAS,CAACP,WAAW,CAACK,oBAAoB,EAAEI,QAAQ,CAAC;EAC9D,CAAC;EACDH,gBAAgBA,CAACG,QAAoB,EAAE;IACrC,OAAOF,SAAS,CAACP,WAAW,CAACM,gBAAgB,EAAEG,QAAiC,CAAC;EACnF;AACF,CAAC","ignoreList":[]}
|
|
@@ -27,11 +27,11 @@ export declare const Glance: {
|
|
|
27
27
|
openChatWithSuggestion(suggestion: string): void;
|
|
28
28
|
handleDeepLink(uri: string): boolean;
|
|
29
29
|
startOnboarding(variantId?: string): void;
|
|
30
|
-
onProductClick(listener: (event: ProductClickEvent) => void): import("react-native").
|
|
31
|
-
onDeeplinkClick(listener: (uri: string) => void): import("react-native").
|
|
32
|
-
onAddToCart(listener: (event: AddToCartEvent) => void): import("react-native").
|
|
33
|
-
onViewCart(listener: () => void): import("react-native").
|
|
34
|
-
onTryOnStatesChanged(listener: (event: TryOnStatesEvent) => void): import("react-native").
|
|
35
|
-
onSessionExpired(listener: () => void): import("react-native").
|
|
30
|
+
onProductClick(listener: (event: ProductClickEvent) => void): import("react-native").EmitterSubscription;
|
|
31
|
+
onDeeplinkClick(listener: (uri: string) => void): import("react-native").EmitterSubscription;
|
|
32
|
+
onAddToCart(listener: (event: AddToCartEvent) => void): import("react-native").EmitterSubscription;
|
|
33
|
+
onViewCart(listener: () => void): import("react-native").EmitterSubscription;
|
|
34
|
+
onTryOnStatesChanged(listener: (event: TryOnStatesEvent) => void): import("react-native").EmitterSubscription;
|
|
35
|
+
onSessionExpired(listener: () => void): import("react-native").EmitterSubscription;
|
|
36
36
|
};
|
|
37
37
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,CAAC;AA2BF,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AAC9F,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAExF,qCAAqC;AACrC,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAC3B,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,MAAM;0BAEJ,MAAM,UACT,gBAAgB,WACf,MAAM,GAAG,IAAI,GACrB,IAAI;oBAGS,MAAM,GAAG,IAAI;eAGlB,IAAI;qBAGE,OAAO;kBAGV,OAAO;4BAGG,MAAM,aAAY,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAQ,IAAI;wBAGxD,IAAI;iBAGX,IAAI;uCAGkB,MAAM,GAAG,IAAI;wBAG5B,MAAM,GAAG,OAAO;gCAGR,MAAM,GAAG,IAAI;6BAKhB,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI;8BAGjC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI;0BAGzB,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI;yBAGhC,MAAM,IAAI;mCAGA,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI;+BAGrC,MAAM,IAAI;CAGtC,CAAC"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { DeviceEventEmitter } from 'react-native';
|
|
1
2
|
import GlanceChat from './NativeGlanceChat';
|
|
2
3
|
import type {
|
|
3
4
|
AddToCartEvent,
|
|
@@ -13,6 +14,30 @@ export type {
|
|
|
13
14
|
TryOnStatesEvent,
|
|
14
15
|
};
|
|
15
16
|
|
|
17
|
+
// The names the native module emits under — `GlanceChatModuleImpl.EVENT_*`.
|
|
18
|
+
const EVENT_NAMES = {
|
|
19
|
+
onProductClick: 'onProductClick',
|
|
20
|
+
onDeeplinkClick: 'onDeeplinkClick',
|
|
21
|
+
onAddToCart: 'onAddToCart',
|
|
22
|
+
onViewCart: 'onViewCart',
|
|
23
|
+
onTryOnStatesChanged: 'onTryOnStatesChanged',
|
|
24
|
+
onSessionExpired: 'onSessionExpired',
|
|
25
|
+
} as const;
|
|
26
|
+
|
|
27
|
+
// The native module delivers every event through `RCTDeviceEventEmitter`
|
|
28
|
+
// (`GlanceChatModuleImpl.emit`), and only there. `DeviceEventEmitter` is that same emitter,
|
|
29
|
+
// so this is the one place a listener can be attached.
|
|
30
|
+
//
|
|
31
|
+
// It is also the only place one *can* be: an `EventEmitter<...>` property in the codegen
|
|
32
|
+
// spec generates a native-side `emit<Name>()` helper and nothing else (see
|
|
33
|
+
// `GenerateModuleJavaSpec.js`), so the spec offers no subscribe function, and the native
|
|
34
|
+
// class implements no `on<Name>` methods. Calling `GlanceChat.onViewCart(listener)` as
|
|
35
|
+
// though it were one therefore never attached a listener — product taps and "View Cart"
|
|
36
|
+
// were emitted with nothing listening.
|
|
37
|
+
function subscribe<T>(eventName: string, listener: (event: T) => void) {
|
|
38
|
+
return DeviceEventEmitter.addListener(eventName, listener);
|
|
39
|
+
}
|
|
40
|
+
|
|
16
41
|
// Native UI components (Fabric). Each hosts the corresponding SDK Composable.
|
|
17
42
|
export { default as GlanceChatOverlay } from './GlanceChatOverlayNativeComponent';
|
|
18
43
|
export { default as GlanceProductTryOnWidget } from './GlanceProductTryOnWidgetNativeComponent';
|
|
@@ -73,21 +98,21 @@ export const Glance = {
|
|
|
73
98
|
|
|
74
99
|
// --- Event subscriptions -------------------------------------------------
|
|
75
100
|
onProductClick(listener: (event: ProductClickEvent) => void) {
|
|
76
|
-
return
|
|
101
|
+
return subscribe(EVENT_NAMES.onProductClick, listener);
|
|
77
102
|
},
|
|
78
103
|
onDeeplinkClick(listener: (uri: string) => void) {
|
|
79
|
-
return
|
|
104
|
+
return subscribe(EVENT_NAMES.onDeeplinkClick, listener);
|
|
80
105
|
},
|
|
81
106
|
onAddToCart(listener: (event: AddToCartEvent) => void) {
|
|
82
|
-
return
|
|
107
|
+
return subscribe(EVENT_NAMES.onAddToCart, listener);
|
|
83
108
|
},
|
|
84
109
|
onViewCart(listener: () => void) {
|
|
85
|
-
return
|
|
110
|
+
return subscribe(EVENT_NAMES.onViewCart, listener as (event: void) => void);
|
|
86
111
|
},
|
|
87
112
|
onTryOnStatesChanged(listener: (event: TryOnStatesEvent) => void) {
|
|
88
|
-
return
|
|
113
|
+
return subscribe(EVENT_NAMES.onTryOnStatesChanged, listener);
|
|
89
114
|
},
|
|
90
115
|
onSessionExpired(listener: () => void) {
|
|
91
|
-
return
|
|
116
|
+
return subscribe(EVENT_NAMES.onSessionExpired, listener as (event: void) => void);
|
|
92
117
|
},
|
|
93
118
|
};
|