@reown/appkit-core-react-native 0.0.0-feat-multichain-20251003200131 → 0.0.0-feat-multichain-20251006182725
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/commonjs/controllers/EventsController.js +50 -1
- package/lib/commonjs/controllers/EventsController.js.map +1 -1
- package/lib/module/controllers/EventsController.js +50 -1
- package/lib/module/controllers/EventsController.js.map +1 -1
- package/lib/typescript/controllers/EventsController.d.ts +13 -1
- package/lib/typescript/controllers/EventsController.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/controllers/EventsController.ts +72 -2
|
@@ -15,6 +15,7 @@ const api = new _FetchUtil.FetchUtil({
|
|
|
15
15
|
baseUrl
|
|
16
16
|
});
|
|
17
17
|
const excluded = ['MODAL_CREATED'];
|
|
18
|
+
const IMPRESSION_TIMEOUT = 3000;
|
|
18
19
|
|
|
19
20
|
// -- Types --------------------------------------------- //
|
|
20
21
|
|
|
@@ -24,7 +25,9 @@ const state = (0, _valtio.proxy)({
|
|
|
24
25
|
data: {
|
|
25
26
|
type: 'track',
|
|
26
27
|
event: 'MODAL_CREATED' // just for init purposes
|
|
27
|
-
}
|
|
28
|
+
},
|
|
29
|
+
pendingWalletImpressions: [],
|
|
30
|
+
pendingImpressionTimeout: undefined
|
|
28
31
|
});
|
|
29
32
|
|
|
30
33
|
// -- Controller ---------------------------------------- //
|
|
@@ -40,6 +43,40 @@ const EventsController = exports.EventsController = {
|
|
|
40
43
|
}
|
|
41
44
|
});
|
|
42
45
|
},
|
|
46
|
+
trackWalletImpression(props) {
|
|
47
|
+
state.pendingWalletImpressions.push({
|
|
48
|
+
name: props.wallet.name ?? 'Unknown',
|
|
49
|
+
walletRank: props.wallet.order,
|
|
50
|
+
explorerId: props.wallet.id,
|
|
51
|
+
certified: props.wallet.badge_type === 'certified',
|
|
52
|
+
displayIndex: props.displayIndex,
|
|
53
|
+
view: props.view,
|
|
54
|
+
query: props.query,
|
|
55
|
+
installed: props.installed
|
|
56
|
+
});
|
|
57
|
+
if (state.pendingImpressionTimeout) {
|
|
58
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
59
|
+
}
|
|
60
|
+
state.pendingImpressionTimeout = setTimeout(() => {
|
|
61
|
+
EventsController.sendWalletImpressions();
|
|
62
|
+
}, IMPRESSION_TIMEOUT);
|
|
63
|
+
},
|
|
64
|
+
sendWalletImpressions() {
|
|
65
|
+
if (state.pendingImpressionTimeout) {
|
|
66
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
67
|
+
state.pendingImpressionTimeout = undefined;
|
|
68
|
+
}
|
|
69
|
+
const impressions = state.pendingWalletImpressions;
|
|
70
|
+
if (impressions.length === 0) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
state.pendingWalletImpressions = [];
|
|
74
|
+
EventsController.sendEvent({
|
|
75
|
+
type: 'track',
|
|
76
|
+
event: 'WALLET_IMPRESSION',
|
|
77
|
+
items: impressions
|
|
78
|
+
});
|
|
79
|
+
},
|
|
43
80
|
async _sendAnalyticsEvent(data, timestamp) {
|
|
44
81
|
if (excluded.includes(data.event)) {
|
|
45
82
|
return;
|
|
@@ -68,6 +105,18 @@ const EventsController = exports.EventsController = {
|
|
|
68
105
|
if (_OptionsController.OptionsController.state.enableAnalytics) {
|
|
69
106
|
EventsController._sendAnalyticsEvent(data, timestamp);
|
|
70
107
|
}
|
|
108
|
+
},
|
|
109
|
+
resetState() {
|
|
110
|
+
if (state.pendingImpressionTimeout) {
|
|
111
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
112
|
+
state.pendingImpressionTimeout = undefined;
|
|
113
|
+
}
|
|
114
|
+
state.pendingWalletImpressions = [];
|
|
115
|
+
state.data = {
|
|
116
|
+
type: 'track',
|
|
117
|
+
event: 'MODAL_CREATED'
|
|
118
|
+
};
|
|
119
|
+
state.timestamp = Date.now();
|
|
71
120
|
}
|
|
72
121
|
};
|
|
73
122
|
//# sourceMappingURL=EventsController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_valtio","require","_ApiController","_OptionsController","_CoreHelperUtil","_FetchUtil","baseUrl","CoreHelperUtil","getAnalyticsUrl","api","FetchUtil","excluded","state","proxy","timestamp","Date","now","data","type","event","EventsController","exports","subscribe","callback","sub","subscribeEvent","_sendAnalyticsEvent","includes","post","path","headers","ApiController","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","
|
|
1
|
+
{"version":3,"names":["_valtio","require","_ApiController","_OptionsController","_CoreHelperUtil","_FetchUtil","baseUrl","CoreHelperUtil","getAnalyticsUrl","api","FetchUtil","excluded","IMPRESSION_TIMEOUT","state","proxy","timestamp","Date","now","data","type","event","pendingWalletImpressions","pendingImpressionTimeout","undefined","EventsController","exports","subscribe","callback","sub","subscribeEvent","trackWalletImpression","props","push","name","wallet","walletRank","order","explorerId","id","certified","badge_type","displayIndex","view","query","installed","clearTimeout","setTimeout","sendWalletImpressions","impressions","length","sendEvent","items","_sendAnalyticsEvent","includes","post","path","headers","ApiController","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","prefetchPromise","OptionsController","enableAnalytics","resetState"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,7 @@ const api = new FetchUtil({
|
|
|
11
11
|
baseUrl
|
|
12
12
|
});
|
|
13
13
|
const excluded = ['MODAL_CREATED'];
|
|
14
|
+
const IMPRESSION_TIMEOUT = 3000;
|
|
14
15
|
|
|
15
16
|
// -- Types --------------------------------------------- //
|
|
16
17
|
|
|
@@ -20,7 +21,9 @@ const state = proxy({
|
|
|
20
21
|
data: {
|
|
21
22
|
type: 'track',
|
|
22
23
|
event: 'MODAL_CREATED' // just for init purposes
|
|
23
|
-
}
|
|
24
|
+
},
|
|
25
|
+
pendingWalletImpressions: [],
|
|
26
|
+
pendingImpressionTimeout: undefined
|
|
24
27
|
});
|
|
25
28
|
|
|
26
29
|
// -- Controller ---------------------------------------- //
|
|
@@ -36,6 +39,40 @@ export const EventsController = {
|
|
|
36
39
|
}
|
|
37
40
|
});
|
|
38
41
|
},
|
|
42
|
+
trackWalletImpression(props) {
|
|
43
|
+
state.pendingWalletImpressions.push({
|
|
44
|
+
name: props.wallet.name ?? 'Unknown',
|
|
45
|
+
walletRank: props.wallet.order,
|
|
46
|
+
explorerId: props.wallet.id,
|
|
47
|
+
certified: props.wallet.badge_type === 'certified',
|
|
48
|
+
displayIndex: props.displayIndex,
|
|
49
|
+
view: props.view,
|
|
50
|
+
query: props.query,
|
|
51
|
+
installed: props.installed
|
|
52
|
+
});
|
|
53
|
+
if (state.pendingImpressionTimeout) {
|
|
54
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
55
|
+
}
|
|
56
|
+
state.pendingImpressionTimeout = setTimeout(() => {
|
|
57
|
+
EventsController.sendWalletImpressions();
|
|
58
|
+
}, IMPRESSION_TIMEOUT);
|
|
59
|
+
},
|
|
60
|
+
sendWalletImpressions() {
|
|
61
|
+
if (state.pendingImpressionTimeout) {
|
|
62
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
63
|
+
state.pendingImpressionTimeout = undefined;
|
|
64
|
+
}
|
|
65
|
+
const impressions = state.pendingWalletImpressions;
|
|
66
|
+
if (impressions.length === 0) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
state.pendingWalletImpressions = [];
|
|
70
|
+
EventsController.sendEvent({
|
|
71
|
+
type: 'track',
|
|
72
|
+
event: 'WALLET_IMPRESSION',
|
|
73
|
+
items: impressions
|
|
74
|
+
});
|
|
75
|
+
},
|
|
39
76
|
async _sendAnalyticsEvent(data, timestamp) {
|
|
40
77
|
if (excluded.includes(data.event)) {
|
|
41
78
|
return;
|
|
@@ -64,6 +101,18 @@ export const EventsController = {
|
|
|
64
101
|
if (OptionsController.state.enableAnalytics) {
|
|
65
102
|
EventsController._sendAnalyticsEvent(data, timestamp);
|
|
66
103
|
}
|
|
104
|
+
},
|
|
105
|
+
resetState() {
|
|
106
|
+
if (state.pendingImpressionTimeout) {
|
|
107
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
108
|
+
state.pendingImpressionTimeout = undefined;
|
|
109
|
+
}
|
|
110
|
+
state.pendingWalletImpressions = [];
|
|
111
|
+
state.data = {
|
|
112
|
+
type: 'track',
|
|
113
|
+
event: 'MODAL_CREATED'
|
|
114
|
+
};
|
|
115
|
+
state.timestamp = Date.now();
|
|
67
116
|
}
|
|
68
117
|
};
|
|
69
118
|
//# sourceMappingURL=EventsController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["proxy","subscribe","sub","ApiController","OptionsController","CoreHelperUtil","FetchUtil","baseUrl","getAnalyticsUrl","api","excluded","state","timestamp","Date","now","data","type","event","EventsController","callback","subscribeEvent","_sendAnalyticsEvent","includes","post","path","headers","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","
|
|
1
|
+
{"version":3,"names":["proxy","subscribe","sub","ApiController","OptionsController","CoreHelperUtil","FetchUtil","baseUrl","getAnalyticsUrl","api","excluded","IMPRESSION_TIMEOUT","state","timestamp","Date","now","data","type","event","pendingWalletImpressions","pendingImpressionTimeout","undefined","EventsController","callback","subscribeEvent","trackWalletImpression","props","push","name","wallet","walletRank","order","explorerId","id","certified","badge_type","displayIndex","view","query","installed","clearTimeout","setTimeout","sendWalletImpressions","impressions","length","sendEvent","items","_sendAnalyticsEvent","includes","post","path","headers","_getApiHeaders","params","_getApiParams","body","eventId","getUUID","bundleId","getBundleId","prefetchPromise","enableAnalytics","resetState"],"sourceRoot":"../../../src","sources":["controllers/EventsController.ts"],"mappings":";;AAAA,SAASA,KAAK,EAAEC,SAAS,IAAIC,GAAG,QAAQ,QAAQ;AAChD,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,SAASC,SAAS,QAAQ,oBAAoB;AAQ9C;AACA,MAAMC,OAAO,GAAGF,cAAc,CAACG,eAAe,CAAC,CAAC;AAChD,MAAMC,GAAG,GAAG,IAAIH,SAAS,CAAC;EAAEC;AAAQ,CAAC,CAAC;AACtC,MAAMG,QAAQ,GAAG,CAAC,eAAe,CAAC;AAClC,MAAMC,kBAAkB,GAAG,IAAI;;AAE/B;;AAQA;AACA,MAAMC,KAAK,GAAGZ,KAAK,CAAwB;EACzCa,SAAS,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC;EACrBC,IAAI,EAAE;IACJC,IAAI,EAAE,OAAO;IACbC,KAAK,EAAE,eAAe,CAAC;EACzB,CAAC;EACDC,wBAAwB,EAAE,EAAE;EAC5BC,wBAAwB,EAAEC;AAC5B,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,gBAAgB,GAAG;EAC9BV,KAAK;EAELX,SAASA,CAACsB,QAAmD,EAAE;IAC7D,OAAOrB,GAAG,CAACU,KAAK,EAAE,MAAMW,QAAQ,CAACX,KAAK,CAAC,CAAC;EAC1C,CAAC;EAEDY,cAAcA,CAACN,KAAgB,EAAEK,QAAmD,EAAE;IACpF,OAAOrB,GAAG,CAACU,KAAK,EAAE,MAAM;MACtB,IAAIA,KAAK,CAACI,IAAI,CAACE,KAAK,KAAKA,KAAK,EAAE;QAC9BK,QAAQ,CAACX,KAAK,CAAC;MACjB;IACF,CAAC,CAAC;EACJ,CAAC;EAEDa,qBAAqBA,CAACC,KAMrB,EAAE;IACDd,KAAK,CAACO,wBAAwB,CAACQ,IAAI,CAAC;MAClCC,IAAI,EAAEF,KAAK,CAACG,MAAM,CAACD,IAAI,IAAI,SAAS;MACpCE,UAAU,EAAEJ,KAAK,CAACG,MAAM,CAACE,KAAK;MAC9BC,UAAU,EAAEN,KAAK,CAACG,MAAM,CAACI,EAAE;MAC3BC,SAAS,EAAER,KAAK,CAACG,MAAM,CAACM,UAAU,KAAK,WAAW;MAClDC,YAAY,EAAEV,KAAK,CAACU,YAAY;MAChCC,IAAI,EAAEX,KAAK,CAACW,IAAI;MAChBC,KAAK,EAAEZ,KAAK,CAACY,KAAK;MAClBC,SAAS,EAAEb,KAAK,CAACa;IACnB,CAAC,CAAC;IAEF,IAAI3B,KAAK,CAACQ,wBAAwB,EAAE;MAClCoB,YAAY,CAAC5B,KAAK,CAACQ,wBAAwB,CAAC;IAC9C;IAEAR,KAAK,CAACQ,wBAAwB,GAAGqB,UAAU,CAAC,MAAM;MAChDnB,gBAAgB,CAACoB,qBAAqB,CAAC,CAAC;IAC1C,CAAC,EAAE/B,kBAAkB,CAAC;EACxB,CAAC;EAED+B,qBAAqBA,CAAA,EAAG;IACtB,IAAI9B,KAAK,CAACQ,wBAAwB,EAAE;MAClCoB,YAAY,CAAC5B,KAAK,CAACQ,wBAAwB,CAAC;MAC5CR,KAAK,CAACQ,wBAAwB,GAAGC,SAAS;IAC5C;IAEA,MAAMsB,WAAW,GAAG/B,KAAK,CAACO,wBAAwB;IAElD,IAAIwB,WAAW,CAACC,MAAM,KAAK,CAAC,EAAE;MAC5B;IACF;IAEAhC,KAAK,CAACO,wBAAwB,GAAG,EAAE;IACnCG,gBAAgB,CAACuB,SAAS,CAAC;MACzB5B,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE,mBAAmB;MAC1B4B,KAAK,EAAEH;IACT,CAAC,CAAC;EACJ,CAAC;EAED,MAAMI,mBAAmBA,CAAC/B,IAAmC,EAAEH,SAAiB,EAAE;IAChF,IAAIH,QAAQ,CAACsC,QAAQ,CAAChC,IAAI,CAACE,KAAK,CAAC,EAAE;MACjC;IACF;IAEA,IAAI;MACF,MAAMT,GAAG,CAACwC,IAAI,CAAC;QACbC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAEhD,aAAa,CAACiD,cAAc,CAAC,CAAC;QACvCC,MAAM,EAAElD,aAAa,CAACmD,aAAa,CAAC,CAAC;QACrCC,IAAI,EAAE;UACJC,OAAO,EAAEnD,cAAc,CAACoD,OAAO,CAAC,CAAC;UACjCC,QAAQ,EAAErD,cAAc,CAACsD,WAAW,CAAC,CAAC;UACtC9C,SAAS;UACTa,KAAK,EAAEV;QACT;MACF,CAAC,CAAC;IACJ,CAAC,CAAC,MAAM;MACN;IAAA;EAEJ,CAAC;EAED,MAAM6B,SAASA,CAAC7B,IAAmC,EAAE;IACnD,MAAMH,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;IAC5BH,KAAK,CAACC,SAAS,GAAGA,SAAS;IAC3BD,KAAK,CAACI,IAAI,GAAGA,IAAI;IACjB,MAAMb,aAAa,CAACS,KAAK,CAACgD,eAAe;IAEzC,IAAIxD,iBAAiB,CAACQ,KAAK,CAACiD,eAAe,EAAE;MAC3CvC,gBAAgB,CAACyB,mBAAmB,CAAC/B,IAAI,EAAEH,SAAS,CAAC;IACvD;EACF,CAAC;EAEDiD,UAAUA,CAAA,EAAG;IACX,IAAIlD,KAAK,CAACQ,wBAAwB,EAAE;MAClCoB,YAAY,CAAC5B,KAAK,CAACQ,wBAAwB,CAAC;MAC5CR,KAAK,CAACQ,wBAAwB,GAAGC,SAAS;IAC5C;IACAT,KAAK,CAACO,wBAAwB,GAAG,EAAE;IACnCP,KAAK,CAACI,IAAI,GAAG;MACXC,IAAI,EAAE,OAAO;MACbC,KAAK,EAAE;IACT,CAAC;IACDN,KAAK,CAACC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC9B;AACF,CAAC","ignoreList":[]}
|
|
@@ -1,13 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import type { Event, EventName, WalletImpressionItem, WcWallet } from '@reown/appkit-common-react-native';
|
|
2
3
|
export interface EventsControllerState {
|
|
3
4
|
timestamp: number;
|
|
4
5
|
data: Event;
|
|
6
|
+
pendingWalletImpressions: WalletImpressionItem[];
|
|
7
|
+
pendingImpressionTimeout?: NodeJS.Timeout;
|
|
5
8
|
}
|
|
6
9
|
export declare const EventsController: {
|
|
7
10
|
state: EventsControllerState;
|
|
8
11
|
subscribe(callback: (newState: EventsControllerState) => void): () => void;
|
|
9
12
|
subscribeEvent(event: EventName, callback: (newEvent: EventsControllerState) => void): () => void;
|
|
13
|
+
trackWalletImpression(props: {
|
|
14
|
+
wallet: WcWallet;
|
|
15
|
+
view: 'Connect' | 'AllWallets';
|
|
16
|
+
displayIndex: number;
|
|
17
|
+
query?: string;
|
|
18
|
+
installed?: boolean;
|
|
19
|
+
}): void;
|
|
20
|
+
sendWalletImpressions(): void;
|
|
10
21
|
_sendAnalyticsEvent(data: EventsControllerState['data'], timestamp: number): Promise<void>;
|
|
11
22
|
sendEvent(data: EventsControllerState['data']): Promise<void>;
|
|
23
|
+
resetState(): void;
|
|
12
24
|
};
|
|
13
25
|
//# sourceMappingURL=EventsController.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EventsController.d.ts","sourceRoot":"","sources":["../../../src/controllers/EventsController.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"EventsController.d.ts","sourceRoot":"","sources":["../../../src/controllers/EventsController.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EACV,KAAK,EACL,SAAS,EACT,oBAAoB,EACpB,QAAQ,EACT,MAAM,mCAAmC,CAAC;AAS3C,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,wBAAwB,EAAE,oBAAoB,EAAE,CAAC;IACjD,wBAAwB,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;CAC3C;AAcD,eAAO,MAAM,gBAAgB;;mCAGI,qBAAqB,KAAK,IAAI;0BAIvC,SAAS,uBAAuB,qBAAqB,KAAK,IAAI;iCAQvD;QAC3B,MAAM,EAAE,QAAQ,CAAC;QACjB,IAAI,EAAE,SAAS,GAAG,YAAY,CAAC;QAC/B,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB;;8BAyC+B,qBAAqB,CAAC,MAAM,CAAC,aAAa,MAAM;oBAsB1D,qBAAqB,CAAC,MAAM,CAAC;;CAuBpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reown/appkit-core-react-native",
|
|
3
|
-
"version": "0.0.0-feat-multichain-
|
|
3
|
+
"version": "0.0.0-feat-multichain-20251006182725",
|
|
4
4
|
"main": "lib/commonjs/index.js",
|
|
5
5
|
"types": "lib/typescript/index.d.ts",
|
|
6
6
|
"module": "lib/module/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"provenance": true
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@reown/appkit-common-react-native": "0.0.0-feat-multichain-
|
|
43
|
+
"@reown/appkit-common-react-native": "0.0.0-feat-multichain-20251006182725",
|
|
44
44
|
"countries-and-timezones": "3.7.2",
|
|
45
45
|
"derive-valtio": "0.2.0",
|
|
46
46
|
"valtio": "2.1.8"
|
|
@@ -3,17 +3,25 @@ import { ApiController } from './ApiController';
|
|
|
3
3
|
import { OptionsController } from './OptionsController';
|
|
4
4
|
import { CoreHelperUtil } from '../utils/CoreHelperUtil';
|
|
5
5
|
import { FetchUtil } from '../utils/FetchUtil';
|
|
6
|
-
import type {
|
|
6
|
+
import type {
|
|
7
|
+
Event,
|
|
8
|
+
EventName,
|
|
9
|
+
WalletImpressionItem,
|
|
10
|
+
WcWallet
|
|
11
|
+
} from '@reown/appkit-common-react-native';
|
|
7
12
|
|
|
8
13
|
// -- Helpers ------------------------------------------- //
|
|
9
14
|
const baseUrl = CoreHelperUtil.getAnalyticsUrl();
|
|
10
15
|
const api = new FetchUtil({ baseUrl });
|
|
11
16
|
const excluded = ['MODAL_CREATED'];
|
|
17
|
+
const IMPRESSION_TIMEOUT = 3000;
|
|
12
18
|
|
|
13
19
|
// -- Types --------------------------------------------- //
|
|
14
20
|
export interface EventsControllerState {
|
|
15
21
|
timestamp: number;
|
|
16
22
|
data: Event;
|
|
23
|
+
pendingWalletImpressions: WalletImpressionItem[];
|
|
24
|
+
pendingImpressionTimeout?: NodeJS.Timeout;
|
|
17
25
|
}
|
|
18
26
|
|
|
19
27
|
// -- State --------------------------------------------- //
|
|
@@ -22,7 +30,9 @@ const state = proxy<EventsControllerState>({
|
|
|
22
30
|
data: {
|
|
23
31
|
type: 'track',
|
|
24
32
|
event: 'MODAL_CREATED' // just for init purposes
|
|
25
|
-
}
|
|
33
|
+
},
|
|
34
|
+
pendingWalletImpressions: [],
|
|
35
|
+
pendingImpressionTimeout: undefined
|
|
26
36
|
});
|
|
27
37
|
|
|
28
38
|
// -- Controller ---------------------------------------- //
|
|
@@ -41,6 +51,53 @@ export const EventsController = {
|
|
|
41
51
|
});
|
|
42
52
|
},
|
|
43
53
|
|
|
54
|
+
trackWalletImpression(props: {
|
|
55
|
+
wallet: WcWallet;
|
|
56
|
+
view: 'Connect' | 'AllWallets';
|
|
57
|
+
displayIndex: number;
|
|
58
|
+
query?: string;
|
|
59
|
+
installed?: boolean;
|
|
60
|
+
}) {
|
|
61
|
+
state.pendingWalletImpressions.push({
|
|
62
|
+
name: props.wallet.name ?? 'Unknown',
|
|
63
|
+
walletRank: props.wallet.order,
|
|
64
|
+
explorerId: props.wallet.id,
|
|
65
|
+
certified: props.wallet.badge_type === 'certified',
|
|
66
|
+
displayIndex: props.displayIndex,
|
|
67
|
+
view: props.view,
|
|
68
|
+
query: props.query,
|
|
69
|
+
installed: props.installed
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
if (state.pendingImpressionTimeout) {
|
|
73
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
state.pendingImpressionTimeout = setTimeout(() => {
|
|
77
|
+
EventsController.sendWalletImpressions();
|
|
78
|
+
}, IMPRESSION_TIMEOUT);
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
sendWalletImpressions() {
|
|
82
|
+
if (state.pendingImpressionTimeout) {
|
|
83
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
84
|
+
state.pendingImpressionTimeout = undefined;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
const impressions = state.pendingWalletImpressions;
|
|
88
|
+
|
|
89
|
+
if (impressions.length === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
state.pendingWalletImpressions = [];
|
|
94
|
+
EventsController.sendEvent({
|
|
95
|
+
type: 'track',
|
|
96
|
+
event: 'WALLET_IMPRESSION',
|
|
97
|
+
items: impressions
|
|
98
|
+
});
|
|
99
|
+
},
|
|
100
|
+
|
|
44
101
|
async _sendAnalyticsEvent(data: EventsControllerState['data'], timestamp: number) {
|
|
45
102
|
if (excluded.includes(data.event)) {
|
|
46
103
|
return;
|
|
@@ -72,5 +129,18 @@ export const EventsController = {
|
|
|
72
129
|
if (OptionsController.state.enableAnalytics) {
|
|
73
130
|
EventsController._sendAnalyticsEvent(data, timestamp);
|
|
74
131
|
}
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
resetState() {
|
|
135
|
+
if (state.pendingImpressionTimeout) {
|
|
136
|
+
clearTimeout(state.pendingImpressionTimeout);
|
|
137
|
+
state.pendingImpressionTimeout = undefined;
|
|
138
|
+
}
|
|
139
|
+
state.pendingWalletImpressions = [];
|
|
140
|
+
state.data = {
|
|
141
|
+
type: 'track',
|
|
142
|
+
event: 'MODAL_CREATED'
|
|
143
|
+
};
|
|
144
|
+
state.timestamp = Date.now();
|
|
75
145
|
}
|
|
76
146
|
};
|