@sudobility/di_rn 0.1.0 → 0.1.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/analytics/analytics.rn.d.ts.map +1 -1
- package/dist/analytics/analytics.rn.js +35 -15
- package/dist/analytics/analytics.rn.js.map +1 -1
- package/dist/env/env.rn.d.ts.map +1 -1
- package/dist/env/env.rn.js +9 -2
- package/dist/env/env.rn.js.map +1 -1
- package/dist/network/network.rn.d.ts +5 -2
- package/dist/network/network.rn.d.ts.map +1 -1
- package/dist/network/network.rn.js +31 -4
- package/dist/network/network.rn.js.map +1 -1
- package/dist/notification/notification.rn.d.ts +2 -1
- package/dist/notification/notification.rn.d.ts.map +1 -1
- package/dist/notification/notification.rn.js +65 -14
- package/dist/notification/notification.rn.js.map +1 -1
- package/dist/storage/storage.rn.d.ts +10 -0
- package/dist/storage/storage.rn.d.ts.map +1 -1
- package/dist/storage/storage.rn.js +40 -7
- package/dist/storage/storage.rn.js.map +1 -1
- package/dist/theme/theme.rn.d.ts +4 -1
- package/dist/theme/theme.rn.d.ts.map +1 -1
- package/dist/theme/theme.rn.js +27 -3
- package/dist/theme/theme.rn.js.map +1 -1
- package/package.json +5 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.rn.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.rn.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAuBlD,qBAAa,iBAAkB,YAAW,eAAe;IACvD,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,MAAM,CAA0B;IAKxC,UAAU,CAAC,WAAW,EAAE,cAAc,GAAG,kBAAkB,GAAG,IAAI;IAwBlE,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAe5D,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAczC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAa3C,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;IAkB1E,SAAS,IAAI,OAAO;IAOpB,SAAS,IAAI,QAAQ,CAAC,MAAM,CAAC;CAG9B;AAKD,wBAAgB,kBAAkB,IAAI,iBAAiB,CAKtD;AAED,wBAAgB,yBAAyB,CACvC,MAAM,CAAC,EAAE,iBAAiB,GACzB,iBAAiB,CAGnB;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
let analyticsModule = null;
|
|
2
|
+
function getAnalytics() {
|
|
3
|
+
if (!analyticsModule) {
|
|
4
|
+
try {
|
|
5
|
+
const mod = require('@react-native-firebase/analytics');
|
|
6
|
+
analyticsModule = mod;
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
console.warn('Firebase analytics not available:', e);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const analytics = analyticsModule?.default ?? analyticsModule;
|
|
13
|
+
return typeof analytics === 'function' ? analytics() : null;
|
|
14
|
+
}
|
|
2
15
|
export class RNAnalyticsClient {
|
|
3
16
|
constructor() {
|
|
4
17
|
this.enabled = true;
|
|
@@ -7,27 +20,29 @@ export class RNAnalyticsClient {
|
|
|
7
20
|
trackEvent(eventOrData) {
|
|
8
21
|
if (!this.enabled)
|
|
9
22
|
return;
|
|
23
|
+
const analytics = getAnalytics();
|
|
24
|
+
if (!analytics)
|
|
25
|
+
return;
|
|
10
26
|
if (typeof eventOrData === 'object' && 'event' in eventOrData) {
|
|
11
27
|
const { event, parameters } = eventOrData;
|
|
12
|
-
analytics
|
|
28
|
+
analytics
|
|
13
29
|
.logEvent(event, parameters)
|
|
14
30
|
.catch(() => {
|
|
15
31
|
});
|
|
16
32
|
}
|
|
17
33
|
else {
|
|
18
|
-
analytics()
|
|
19
|
-
.logEvent(eventOrData)
|
|
20
|
-
.catch(() => {
|
|
34
|
+
analytics.logEvent(eventOrData).catch(() => {
|
|
21
35
|
});
|
|
22
36
|
}
|
|
23
37
|
}
|
|
24
38
|
setUserProperties(properties) {
|
|
25
39
|
if (!this.enabled)
|
|
26
40
|
return;
|
|
41
|
+
const analytics = getAnalytics();
|
|
42
|
+
if (!analytics)
|
|
43
|
+
return;
|
|
27
44
|
for (const [key, value] of Object.entries(properties)) {
|
|
28
|
-
analytics()
|
|
29
|
-
.setUserProperty(key, String(value))
|
|
30
|
-
.catch(() => {
|
|
45
|
+
analytics.setUserProperty(key, String(value)).catch(() => {
|
|
31
46
|
});
|
|
32
47
|
}
|
|
33
48
|
}
|
|
@@ -35,22 +50,27 @@ export class RNAnalyticsClient {
|
|
|
35
50
|
this.userId = userId;
|
|
36
51
|
if (!this.enabled)
|
|
37
52
|
return;
|
|
38
|
-
analytics()
|
|
39
|
-
|
|
40
|
-
|
|
53
|
+
const analytics = getAnalytics();
|
|
54
|
+
if (!analytics)
|
|
55
|
+
return;
|
|
56
|
+
analytics.setUserId(userId ?? null).catch(() => {
|
|
41
57
|
});
|
|
42
58
|
}
|
|
43
59
|
setAnalyticsEnabled(enabled) {
|
|
44
60
|
this.enabled = enabled;
|
|
45
|
-
analytics()
|
|
46
|
-
|
|
47
|
-
|
|
61
|
+
const analytics = getAnalytics();
|
|
62
|
+
if (!analytics)
|
|
63
|
+
return;
|
|
64
|
+
analytics.setAnalyticsCollectionEnabled(enabled).catch(() => {
|
|
48
65
|
});
|
|
49
66
|
}
|
|
50
67
|
setCurrentScreen(screenName, screenClass) {
|
|
51
68
|
if (!this.enabled)
|
|
52
69
|
return;
|
|
53
|
-
analytics()
|
|
70
|
+
const analytics = getAnalytics();
|
|
71
|
+
if (!analytics)
|
|
72
|
+
return;
|
|
73
|
+
analytics
|
|
54
74
|
.logScreenView({
|
|
55
75
|
screen_name: screenName,
|
|
56
76
|
screen_class: screenClass ?? screenName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.rn.js","sourceRoot":"","sources":["../../src/analytics/analytics.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"analytics.rn.js","sourceRoot":"","sources":["../../src/analytics/analytics.rn.ts"],"names":[],"mappings":"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"}
|
package/dist/env/env.rn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.rn.d.ts","sourceRoot":"","sources":["../../src/env/env.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.rn.d.ts","sourceRoot":"","sources":["../../src/env/env.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,SAAS,EACT,oBAAoB,EACpB,cAAc,EACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAsBlD,qBAAa,aAAc,YAAW,WAAW;IAC/C,GAAG,CAAC,CAAC,SAAS,MAAM,oBAAoB,EACtC,GAAG,EAAE,CAAC,EACN,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC9B,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;IAO7C,MAAM,IAAI,oBAAoB;IAI9B,aAAa,IAAI,OAAO;IAKxB,YAAY,IAAI,OAAO;IAIvB,MAAM,IAAI,OAAO;CAGlB;AAKD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,aAAa,GAAG,SAAS,CAqBvE;AA8BD,eAAO,MAAM,aAAa,eAAsB,CAAC;AACjD,eAAO,MAAM,WAAW,WAAmC,CAAC;AAG5D,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/env/env.rn.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
let Config = {};
|
|
2
|
+
try {
|
|
3
|
+
const maybeConfig = require('react-native-config');
|
|
4
|
+
Config = (maybeConfig?.default ?? maybeConfig ?? {});
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
throw new Error(`[di_rn] react-native-config not available; cannot initialize env provider: ${error}`);
|
|
8
|
+
}
|
|
2
9
|
export class RNEnvProvider {
|
|
3
10
|
get(key, defaultValue) {
|
|
4
11
|
const value = Config[key];
|
|
5
|
-
return value ?? defaultValue ?? null;
|
|
12
|
+
return (value ?? defaultValue ?? null);
|
|
6
13
|
}
|
|
7
14
|
getAll() {
|
|
8
15
|
return Config;
|
package/dist/env/env.rn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.rn.js","sourceRoot":"","sources":["../../src/env/env.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"env.rn.js","sourceRoot":"","sources":["../../src/env/env.rn.ts"],"names":[],"mappings":"AASA,IAAI,MAAM,GAAuC,EAAE,CAAC;AACpD,IAAI,CAAC;IAGH,MAAM,WAAW,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACnD,MAAM,GAAG,CAAC,WAAW,EAAE,OAAO,IAAI,WAAW,IAAI,EAAE,CAGlD,CAAC;AACJ,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,MAAM,IAAI,KAAK,CACb,8EAA8E,KAAK,EAAE,CACtF,CAAC;AACJ,CAAC;AAMD,MAAM,OAAO,aAAa;IACxB,GAAG,CACD,GAAM,EACN,YAA+B;QAE/B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAa,CAAC,CAAC;QACpC,OAAO,CAAC,KAAK,IAAI,YAAY,IAAI,IAAI,CAEpC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,MAAyC,CAAC;IACnD,CAAC;IAED,aAAa;QAEX,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,CAAC;IAC5D,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;IACzC,CAAC;CACF;AAKD,MAAM,UAAU,iBAAiB,CAAC,WAA0B;IAC1D,OAAO;QACL,kBAAkB,EACf,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAwB;YAC5D,6BAA6B;QAC/B,iBAAiB,EACd,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAwB;YAC3D,4BAA4B;QAC9B,sBAAsB,EACnB,WAAW,CAAC,GAAG,CAAC,+BAA+B,CAElC,IAAI,EAAE;QACtB,gBAAgB,EACb,WAAW,CAAC,GAAG,CAAC,yBAAyB,CAAwB,IAAI,EAAE;QAC1E,UAAU,EACP,WAAW,CAAC,GAAG,CAAC,mBAAmB,CAAwB,IAAI,EAAE;QACpE,QAAQ,EAAE,oBAAoB,CAAC,WAAW,CAAC;QAC3C,mBAAmB,EAAE,KAAK;QAC1B,mBAAmB,EAAE,EAAE;QACvB,eAAe,EAAE,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,MAAM;KAC9D,CAAC;AACJ,CAAC;AAKD,SAAS,oBAAoB,CAAC,WAA0B;IACtD,OAAO;QACL,MAAM,EACH,WAAW,CAAC,GAAG,CAAC,uBAAuB,CAAwB,IAAI,EAAE;QACxE,UAAU,EACP,WAAW,CAAC,GAAG,CAAC,2BAA2B,CAAwB;YACpE,EAAE;QACJ,SAAS,EACN,WAAW,CAAC,GAAG,CAAC,0BAA0B,CAAwB,IAAI,EAAE;QAC3E,aAAa,EACV,WAAW,CAAC,GAAG,CAAC,8BAA8B,CAAwB;YACvE,EAAE;QACJ,iBAAiB,EACd,WAAW,CAAC,GAAG,CAAC,mCAAmC,CAEtC,IAAI,EAAE;QACtB,KAAK,EACF,WAAW,CAAC,GAAG,CAAC,sBAAsB,CAAwB,IAAI,EAAE;QACvE,aAAa,EACV,WAAW,CAAC,GAAG,CAAC,8BAA8B,CAAwB;YACvE,SAAS;KACZ,CAAC;AACJ,CAAC;AAGD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AACjD,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC,aAAa,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { NetInfoState } from '@react-native-community/netinfo';
|
|
2
1
|
import type { NetworkClient, NetworkResponse, NetworkRequestOptions, Optional } from '@sudobility/types';
|
|
3
2
|
import type { PlatformNetwork } from '@sudobility/di';
|
|
3
|
+
type NetInfoState = import('@react-native-community/netinfo').NetInfoState;
|
|
4
4
|
export declare class RNNetworkClient implements NetworkClient {
|
|
5
5
|
private defaultTimeout;
|
|
6
6
|
constructor(defaultTimeout?: number);
|
|
@@ -23,16 +23,19 @@ export declare class RNNetworkService implements PlatformNetwork {
|
|
|
23
23
|
private isOnlineState;
|
|
24
24
|
private listeners;
|
|
25
25
|
private unsubscribe;
|
|
26
|
+
private initialized;
|
|
26
27
|
constructor();
|
|
28
|
+
private ensureInitialized;
|
|
27
29
|
private initializeNetworkMonitoring;
|
|
28
30
|
private updateOnlineState;
|
|
29
31
|
private notifyListeners;
|
|
30
32
|
request(url: string, options: RequestInit): Promise<Response>;
|
|
31
33
|
isOnline(): boolean;
|
|
32
34
|
watchNetworkStatus(callback: (isOnline: boolean) => void): () => void;
|
|
33
|
-
getNetworkInfo(): Promise<NetInfoState>;
|
|
35
|
+
getNetworkInfo(): Promise<NetInfoState | null>;
|
|
34
36
|
dispose(): void;
|
|
35
37
|
}
|
|
36
38
|
export declare const rnNetworkClient: RNNetworkClient;
|
|
37
39
|
export declare const rnNetworkService: RNNetworkService;
|
|
40
|
+
export {};
|
|
38
41
|
//# sourceMappingURL=network.rn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.rn.d.ts","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"network.rn.d.ts","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,QAAQ,EACT,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD,KAAK,YAAY,GAAG,OAAO,iCAAiC,EAAE,YAAY,CAAC;AAmB3E,qBAAa,eAAgB,YAAW,aAAa;IACnD,OAAO,CAAC,cAAc,CAAS;gBAEnB,cAAc,GAAE,MAAc;IAIpC,OAAO,CAAC,CAAC,GAAG,OAAO,EACvB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,GACxC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAuCxB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,GACjE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAIxB,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IASxB,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IASxB,MAAM,CAAC,CAAC,GAAG,OAAO,EACtB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,GACjE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAI9B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,WAAW;YAOL,aAAa;IAe3B,OAAO,CAAC,YAAY;CAOrB;AAKD,qBAAa,YAAa,SAAQ,KAAK;IAG5B,MAAM,EAAE,MAAM;IACd,UAAU,EAAE,MAAM;gBAFzB,OAAO,EAAE,MAAM,EACR,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM;CAK5B;AAMD,qBAAa,gBAAiB,YAAW,eAAe;IACtD,OAAO,CAAC,aAAa,CAAiB;IACtC,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,WAAW,CAAkB;;IAMrC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,2BAA2B;IAoBnC,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,eAAe;IAIjB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;IAInE,QAAQ,IAAI,OAAO;IAKnB,kBAAkB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAa/D,cAAc,IAAI,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IASpD,OAAO,IAAI,IAAI;CAOhB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AACrD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
let netInfoModule = null;
|
|
2
|
+
function getNetInfo() {
|
|
3
|
+
if (!netInfoModule) {
|
|
4
|
+
try {
|
|
5
|
+
const mod = require('@react-native-community/netinfo');
|
|
6
|
+
netInfoModule = mod;
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
console.warn('NetInfo not available:', e);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return netInfoModule?.default ?? null;
|
|
13
|
+
}
|
|
2
14
|
export class RNNetworkClient {
|
|
3
15
|
constructor(defaultTimeout = 30000) {
|
|
4
16
|
this.defaultTimeout = defaultTimeout;
|
|
@@ -102,16 +114,26 @@ export class RNNetworkService {
|
|
|
102
114
|
this.isOnlineState = true;
|
|
103
115
|
this.listeners = new Set();
|
|
104
116
|
this.unsubscribe = null;
|
|
117
|
+
this.initialized = false;
|
|
118
|
+
}
|
|
119
|
+
ensureInitialized() {
|
|
120
|
+
if (this.initialized)
|
|
121
|
+
return;
|
|
122
|
+
this.initialized = true;
|
|
105
123
|
this.initializeNetworkMonitoring();
|
|
106
124
|
}
|
|
107
125
|
initializeNetworkMonitoring() {
|
|
108
|
-
|
|
126
|
+
const netInfo = getNetInfo();
|
|
127
|
+
if (!netInfo)
|
|
128
|
+
return;
|
|
129
|
+
netInfo
|
|
130
|
+
.fetch()
|
|
109
131
|
.then((state) => {
|
|
110
132
|
this.updateOnlineState(state);
|
|
111
133
|
})
|
|
112
134
|
.catch(() => {
|
|
113
135
|
});
|
|
114
|
-
this.unsubscribe =
|
|
136
|
+
this.unsubscribe = netInfo.addEventListener((state) => {
|
|
115
137
|
this.updateOnlineState(state);
|
|
116
138
|
});
|
|
117
139
|
}
|
|
@@ -129,16 +151,21 @@ export class RNNetworkService {
|
|
|
129
151
|
return fetch(url, options);
|
|
130
152
|
}
|
|
131
153
|
isOnline() {
|
|
154
|
+
this.ensureInitialized();
|
|
132
155
|
return this.isOnlineState;
|
|
133
156
|
}
|
|
134
157
|
watchNetworkStatus(callback) {
|
|
158
|
+
this.ensureInitialized();
|
|
135
159
|
this.listeners.add(callback);
|
|
136
160
|
return () => {
|
|
137
161
|
this.listeners.delete(callback);
|
|
138
162
|
};
|
|
139
163
|
}
|
|
140
164
|
async getNetworkInfo() {
|
|
141
|
-
|
|
165
|
+
const netInfo = getNetInfo();
|
|
166
|
+
if (!netInfo)
|
|
167
|
+
return null;
|
|
168
|
+
return netInfo.fetch();
|
|
142
169
|
}
|
|
143
170
|
dispose() {
|
|
144
171
|
if (this.unsubscribe) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.rn.js","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"network.rn.js","sourceRoot":"","sources":["../../src/network/network.rn.ts"],"names":[],"mappings":"AAWA,IAAI,aAAa,GAA6B,IAAI,CAAC;AAEnD,SAAS,UAAU;IACjB,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,OAAO,CAAC,iCAAiC,CAAC,CAAC;YACvD,aAAa,GAAG,GAAG,CAAC;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IACD,OAAO,aAAa,EAAE,OAAO,IAAI,IAAI,CAAC;AACxC,CAAC;AAMD,MAAM,OAAO,eAAe;IAG1B,YAAY,iBAAyB,KAAK;QACxC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAW,EACX,OAAyC;QAEzC,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC;QAExD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC;YACH,MAAM,YAAY,GAAgB;gBAChC,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;gBAChC,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS;gBACtC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC;gBACrC,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;YAChD,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,EAAE;gBACpB,IAAI;gBACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC5C,EAAE,EAAE,QAAQ,CAAC,EAAE;aAChB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;YACpE,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW,EACX,OAAkE;QAElE,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,IAAI,CACR,GAAW,EACX,IAAwB,EACxB,OAAyD;QAEzD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE;YAC1B,GAAG,OAAO;YACV,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CACP,GAAW,EACX,IAAwB,EACxB,OAAyD;QAEzD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE;YAC1B,GAAG,OAAO;YACV,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,UAAU;SACjB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CACV,GAAW,EACX,OAAkE;QAElE,OAAO,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,WAAW,CACjB,IAAuB;QAEvB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC1D,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC1C,IAAI,IAAI,YAAY,QAAQ,IAAI,IAAI,YAAY,IAAI;YAAE,OAAO,IAAI,CAAC;QAClE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEO,WAAW,CACjB,IAAyC;QAEzC,IAAI,CAAC,IAAI;YAAE,OAAO,SAAS,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,QAAkB;QAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAE/D,IAAI,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC7C,OAAO,QAAQ,CAAC,IAAI,EAAgB,CAAC;QACvC,CAAC;QAED,IAAI,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,QAAQ,CAAC,IAAI,EAAkB,CAAC;QACzC,CAAC;QAGD,OAAO,QAAQ,CAAC,IAAI,EAAkB,CAAC;IACzC,CAAC;IAEO,YAAY,CAAC,OAAgB;QACnC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE;YAC7C,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAKD,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,YACE,OAAe,EACR,MAAc,EACd,UAAkB;QAEzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAGzB,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AAMD,MAAM,OAAO,gBAAgB;IAM3B;QALQ,kBAAa,GAAY,IAAI,CAAC;QAC9B,cAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;QACxD,gBAAW,GAAwB,IAAI,CAAC;QACxC,gBAAW,GAAY,KAAK,CAAC;IAIrC,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAC7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACrC,CAAC;IAEO,2BAA2B;QACjC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO;QAGrB,OAAO;aACJ,KAAK,EAAE;aACP,IAAI,CAAC,CAAC,KAAmB,EAAE,EAAE;YAC5B,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE;QAEZ,CAAC,CAAC,CAAC;QAGL,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,KAAmB,EAAE,EAAE;YAClE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,KAAmB;QAC3C,MAAM,QAAQ,GACZ,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,KAAK,CAAC,mBAAmB,KAAK,KAAK,CAAC;QAEpE,IAAI,IAAI,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;YAC9B,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,QAAiB;QACvC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,OAAoB;QAC7C,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,kBAAkB,CAAC,QAAqC;QACtD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAG7B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAKD,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF;AAGD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;AACrD,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -3,8 +3,9 @@ import type { Optional } from '@sudobility/types';
|
|
|
3
3
|
export declare class RNNotificationService implements NotificationService {
|
|
4
4
|
private clickHandler;
|
|
5
5
|
private defaultChannelId;
|
|
6
|
+
private channelCreated;
|
|
6
7
|
constructor();
|
|
7
|
-
private
|
|
8
|
+
private ensureChannel;
|
|
8
9
|
isSupported(): boolean;
|
|
9
10
|
showNotification(title: string, options?: Optional<NotificationOptions>): Promise<NotificationResult>;
|
|
10
11
|
requestPermission(): Promise<NotificationPermissionResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.rn.d.ts","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notification.rn.d.ts","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA6BlD,qBAAa,qBAAsB,YAAW,mBAAmB;IAC/D,OAAO,CAAC,YAAY,CAAsD;IAC1E,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,cAAc,CAAkB;;YAS1B,aAAa;IAoB3B,WAAW,IAAI,OAAO;IAQhB,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,GACtC,OAAO,CAAC,kBAAkB,CAAC;IAiDxB,iBAAiB,IAAI,OAAO,CAAC,4BAA4B,CAAC;IAgChE,mBAAmB,IAAI,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa;IAUvE,aAAa,IAAI,OAAO;IASxB,eAAe,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAOlE,eAAe,IAAI,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAO/D,eAAe,IAAI,wBAAwB;IAerC,iBAAiB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAe3D,qBAAqB,IAAI,OAAO,CAAC,OAAO,CAAC;IAezC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAShC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAKlD;AAKD,wBAAgB,sBAAsB,IAAI,qBAAqB,CAK9D;AAED,wBAAgB,6BAA6B,CAC3C,OAAO,CAAC,EAAE,qBAAqB,GAC9B,qBAAqB,CAGvB;AAED,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
|
|
@@ -1,24 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
let notifeeModule = null;
|
|
2
|
+
let AndroidImportanceValue = 4;
|
|
3
|
+
let AuthorizationStatusAuthorized = 1;
|
|
4
|
+
let AuthorizationStatusProvisional = 3;
|
|
5
|
+
function getNotifee() {
|
|
6
|
+
if (!notifeeModule) {
|
|
7
|
+
try {
|
|
8
|
+
const mod = require('@notifee/react-native');
|
|
9
|
+
notifeeModule = mod;
|
|
10
|
+
AndroidImportanceValue = mod.AndroidImportance?.HIGH ?? 4;
|
|
11
|
+
AuthorizationStatusAuthorized = mod.AuthorizationStatus?.AUTHORIZED ?? 1;
|
|
12
|
+
AuthorizationStatusProvisional =
|
|
13
|
+
mod.AuthorizationStatus?.PROVISIONAL ?? 3;
|
|
14
|
+
}
|
|
15
|
+
catch (e) {
|
|
16
|
+
console.warn('Notifee not available:', e);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return notifeeModule?.default ?? null;
|
|
20
|
+
}
|
|
2
21
|
export class RNNotificationService {
|
|
3
22
|
constructor() {
|
|
4
23
|
this.clickHandler = null;
|
|
5
24
|
this.defaultChannelId = 'default';
|
|
6
|
-
this.
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
this.channelCreated = false;
|
|
26
|
+
}
|
|
27
|
+
async ensureChannel() {
|
|
28
|
+
if (this.channelCreated)
|
|
29
|
+
return;
|
|
30
|
+
const notifee = getNotifee();
|
|
31
|
+
if (!notifee)
|
|
32
|
+
return;
|
|
33
|
+
this.channelCreated = true;
|
|
34
|
+
try {
|
|
35
|
+
await notifee.createChannel({
|
|
36
|
+
id: this.defaultChannelId,
|
|
37
|
+
name: 'Default Notifications',
|
|
38
|
+
importance: AndroidImportanceValue,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
}
|
|
17
43
|
}
|
|
18
44
|
isSupported() {
|
|
19
45
|
return true;
|
|
20
46
|
}
|
|
21
47
|
async showNotification(title, options) {
|
|
48
|
+
const notifee = getNotifee();
|
|
49
|
+
if (!notifee) {
|
|
50
|
+
return { success: false, error: 'Notifications not available' };
|
|
51
|
+
}
|
|
52
|
+
await this.ensureChannel();
|
|
22
53
|
try {
|
|
23
54
|
const notificationConfig = {
|
|
24
55
|
title,
|
|
@@ -53,10 +84,18 @@ export class RNNotificationService {
|
|
|
53
84
|
}
|
|
54
85
|
}
|
|
55
86
|
async requestPermission() {
|
|
87
|
+
const notifee = getNotifee();
|
|
88
|
+
if (!notifee) {
|
|
89
|
+
return {
|
|
90
|
+
granted: false,
|
|
91
|
+
permission: 'denied',
|
|
92
|
+
error: 'Notifications not available',
|
|
93
|
+
};
|
|
94
|
+
}
|
|
56
95
|
try {
|
|
57
96
|
const settings = await notifee.requestPermission();
|
|
58
|
-
const granted = settings.authorizationStatus ===
|
|
59
|
-
settings.authorizationStatus ===
|
|
97
|
+
const granted = settings.authorizationStatus === AuthorizationStatusAuthorized ||
|
|
98
|
+
settings.authorizationStatus === AuthorizationStatusProvisional;
|
|
60
99
|
return {
|
|
61
100
|
granted,
|
|
62
101
|
permission: granted ? 'granted' : 'denied',
|
|
@@ -94,6 +133,9 @@ export class RNNotificationService {
|
|
|
94
133
|
};
|
|
95
134
|
}
|
|
96
135
|
async closeNotification(notificationId) {
|
|
136
|
+
const notifee = getNotifee();
|
|
137
|
+
if (!notifee)
|
|
138
|
+
return false;
|
|
97
139
|
try {
|
|
98
140
|
await notifee.cancelNotification(notificationId);
|
|
99
141
|
return true;
|
|
@@ -103,6 +145,9 @@ export class RNNotificationService {
|
|
|
103
145
|
}
|
|
104
146
|
}
|
|
105
147
|
async clearAllNotifications() {
|
|
148
|
+
const notifee = getNotifee();
|
|
149
|
+
if (!notifee)
|
|
150
|
+
return false;
|
|
106
151
|
try {
|
|
107
152
|
await notifee.cancelAllNotifications();
|
|
108
153
|
return true;
|
|
@@ -112,9 +157,15 @@ export class RNNotificationService {
|
|
|
112
157
|
}
|
|
113
158
|
}
|
|
114
159
|
async getBadgeCount() {
|
|
160
|
+
const notifee = getNotifee();
|
|
161
|
+
if (!notifee)
|
|
162
|
+
return 0;
|
|
115
163
|
return notifee.getBadgeCount();
|
|
116
164
|
}
|
|
117
165
|
async setBadgeCount(count) {
|
|
166
|
+
const notifee = getNotifee();
|
|
167
|
+
if (!notifee)
|
|
168
|
+
return;
|
|
118
169
|
await notifee.setBadgeCount(count);
|
|
119
170
|
}
|
|
120
171
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notification.rn.js","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"notification.rn.js","sourceRoot":"","sources":["../../src/notification/notification.rn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import type { PlatformStorage, AdvancedPlatformStorage } from '@sudobility/di';
|
|
2
2
|
import type { Optional } from '@sudobility/types';
|
|
3
|
+
interface AsyncStorageStatic {
|
|
4
|
+
setItem(key: string, value: string): Promise<void>;
|
|
5
|
+
getItem(key: string): Promise<string | null>;
|
|
6
|
+
removeItem(key: string): Promise<void>;
|
|
7
|
+
clear(): Promise<void>;
|
|
8
|
+
getAllKeys(): Promise<readonly string[]>;
|
|
9
|
+
multiRemove(keys: string[]): Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export declare function setAsyncStorageModule(storage: AsyncStorageStatic | null): void;
|
|
3
12
|
export declare class RNStorage implements PlatformStorage {
|
|
4
13
|
setItem(key: string, value: string): Promise<void>;
|
|
5
14
|
getItem(key: string): Promise<Optional<string>>;
|
|
@@ -20,4 +29,5 @@ export declare class AdvancedRNStorage implements AdvancedPlatformStorage {
|
|
|
20
29
|
}
|
|
21
30
|
export declare const rnStorage: RNStorage;
|
|
22
31
|
export declare const advancedRNStorage: AdvancedRNStorage;
|
|
32
|
+
export {};
|
|
23
33
|
//# sourceMappingURL=storage.rn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.rn.d.ts","sourceRoot":"","sources":["../../src/storage/storage.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.rn.d.ts","sourceRoot":"","sources":["../../src/storage/storage.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGlD,UAAU,kBAAkB;IAC1B,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,UAAU,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IACzC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C;AAMD,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,GAAG,IAAI,GACjC,IAAI,CAEN;AAkBD,qBAAa,SAAU,YAAW,eAAe;IACzC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMlD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAO/C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAMtC;AAcD,qBAAa,iBAAkB,YAAW,uBAAuB;IAC/D,OAAO,CAAC,OAAO,CAAY;;IAMrB,OAAO,CACX,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GACrB,OAAO,CAAC,IAAI,CAAC;IASV,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAuB/C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtC,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAiB9D;AAGD,eAAO,MAAM,SAAS,WAAkB,CAAC;AACzC,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
|
|
@@ -1,20 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
let AsyncStorageModule = null;
|
|
2
|
+
export function setAsyncStorageModule(storage) {
|
|
3
|
+
AsyncStorageModule = storage;
|
|
4
|
+
}
|
|
5
|
+
function getAsyncStorage() {
|
|
6
|
+
if (!AsyncStorageModule) {
|
|
7
|
+
try {
|
|
8
|
+
const mod = require('@react-native-async-storage/async-storage');
|
|
9
|
+
AsyncStorageModule = mod.default ?? mod;
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
console.warn('AsyncStorage not available:', e);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return AsyncStorageModule;
|
|
16
|
+
}
|
|
2
17
|
export class RNStorage {
|
|
3
18
|
async setItem(key, value) {
|
|
4
|
-
|
|
19
|
+
const storage = getAsyncStorage();
|
|
20
|
+
if (!storage)
|
|
21
|
+
throw new Error('AsyncStorage not available');
|
|
22
|
+
await storage.setItem(key, value);
|
|
5
23
|
}
|
|
6
24
|
async getItem(key) {
|
|
7
|
-
const
|
|
25
|
+
const storage = getAsyncStorage();
|
|
26
|
+
if (!storage)
|
|
27
|
+
return null;
|
|
28
|
+
const value = await storage.getItem(key);
|
|
8
29
|
return value ?? null;
|
|
9
30
|
}
|
|
10
31
|
async removeItem(key) {
|
|
11
|
-
|
|
32
|
+
const storage = getAsyncStorage();
|
|
33
|
+
if (!storage)
|
|
34
|
+
return;
|
|
35
|
+
await storage.removeItem(key);
|
|
12
36
|
}
|
|
13
37
|
async clear() {
|
|
14
|
-
|
|
38
|
+
const storage = getAsyncStorage();
|
|
39
|
+
if (!storage)
|
|
40
|
+
return;
|
|
41
|
+
await storage.clear();
|
|
15
42
|
}
|
|
16
43
|
async getAllKeys() {
|
|
17
|
-
const
|
|
44
|
+
const storage = getAsyncStorage();
|
|
45
|
+
if (!storage)
|
|
46
|
+
return [];
|
|
47
|
+
const keys = await storage.getAllKeys();
|
|
18
48
|
return [...keys];
|
|
19
49
|
}
|
|
20
50
|
}
|
|
@@ -71,7 +101,10 @@ export class AdvancedRNStorage {
|
|
|
71
101
|
const regex = new RegExp(pattern);
|
|
72
102
|
const keysToRemove = keys.filter((key) => regex.test(key));
|
|
73
103
|
if (keysToRemove.length > 0) {
|
|
74
|
-
|
|
104
|
+
const storage = getAsyncStorage();
|
|
105
|
+
if (storage) {
|
|
106
|
+
await storage.multiRemove(keysToRemove);
|
|
107
|
+
}
|
|
75
108
|
}
|
|
76
109
|
}
|
|
77
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.rn.js","sourceRoot":"","sources":["../../src/storage/storage.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage.rn.js","sourceRoot":"","sources":["../../src/storage/storage.rn.ts"],"names":[],"mappings":"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"}
|
package/dist/theme/theme.rn.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ColorSchemeName } from 'react-native';
|
|
2
1
|
import type { PlatformTheme } from '@sudobility/di';
|
|
2
|
+
type ColorSchemeName = import('react-native').ColorSchemeName;
|
|
3
3
|
export type ThemeMode = 'light' | 'dark' | 'system';
|
|
4
4
|
export type FontSize = 'small' | 'medium' | 'large';
|
|
5
5
|
export declare class RNThemeService implements PlatformTheme {
|
|
@@ -7,7 +7,9 @@ export declare class RNThemeService implements PlatformTheme {
|
|
|
7
7
|
private currentFontSize;
|
|
8
8
|
private listeners;
|
|
9
9
|
private appearanceListener;
|
|
10
|
+
private initialized;
|
|
10
11
|
constructor();
|
|
12
|
+
private ensureInitialized;
|
|
11
13
|
private initializeAppearanceListener;
|
|
12
14
|
private notifyListeners;
|
|
13
15
|
applyTheme(theme: ThemeMode): void;
|
|
@@ -25,4 +27,5 @@ export declare function getThemeService(): RNThemeService;
|
|
|
25
27
|
export declare function initializeThemeService(service?: RNThemeService): RNThemeService;
|
|
26
28
|
export declare function resetThemeService(): void;
|
|
27
29
|
export declare const rnThemeService: RNThemeService;
|
|
30
|
+
export {};
|
|
28
31
|
//# sourceMappingURL=theme.rn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.rn.d.ts","sourceRoot":"","sources":["../../src/theme/theme.rn.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"theme.rn.d.ts","sourceRoot":"","sources":["../../src/theme/theme.rn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAIpD,KAAK,eAAe,GAAG,OAAO,cAAc,EAAE,eAAe,CAAC;AAe9D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAKpD,qBAAa,cAAe,YAAW,aAAa;IAClD,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,SAAS,CAA8C;IAC/D,OAAO,CAAC,kBAAkB,CAAuC;IACjE,OAAO,CAAC,WAAW,CAAkB;;IAMrC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,4BAA4B;IAWpC,OAAO,CAAC,eAAe;IAQvB,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAQlC,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAOvC,eAAe,IAAI,SAAS;IAO5B,gBAAgB,IAAI,OAAO,GAAG,MAAM;IAYpC,cAAc,IAAI,eAAe;IAQjC,kBAAkB,IAAI,QAAQ;IAO9B,qBAAqB,IAAI,MAAM;IAc/B,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAalE,UAAU,IAAI,OAAO;IAOrB,OAAO,IAAI,IAAI;CAOhB;AAKD,wBAAgB,eAAe,IAAI,cAAc,CAKhD;AAED,wBAAgB,sBAAsB,CACpC,OAAO,CAAC,EAAE,cAAc,GACvB,cAAc,CAMhB;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
|
package/dist/theme/theme.rn.js
CHANGED
|
@@ -1,13 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
let AppearanceModule = null;
|
|
2
|
+
function getAppearance() {
|
|
3
|
+
if (!AppearanceModule) {
|
|
4
|
+
try {
|
|
5
|
+
const RN = require('react-native');
|
|
6
|
+
AppearanceModule = RN.Appearance;
|
|
7
|
+
}
|
|
8
|
+
catch (e) {
|
|
9
|
+
console.warn('Appearance not available:', e);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return AppearanceModule;
|
|
13
|
+
}
|
|
2
14
|
export class RNThemeService {
|
|
3
15
|
constructor() {
|
|
4
16
|
this.currentTheme = 'system';
|
|
5
17
|
this.currentFontSize = 'medium';
|
|
6
18
|
this.listeners = new Set();
|
|
7
19
|
this.appearanceListener = null;
|
|
20
|
+
this.initialized = false;
|
|
21
|
+
}
|
|
22
|
+
ensureInitialized() {
|
|
23
|
+
if (this.initialized)
|
|
24
|
+
return;
|
|
25
|
+
this.initialized = true;
|
|
8
26
|
this.initializeAppearanceListener();
|
|
9
27
|
}
|
|
10
28
|
initializeAppearanceListener() {
|
|
29
|
+
const Appearance = getAppearance();
|
|
30
|
+
if (!Appearance)
|
|
31
|
+
return;
|
|
11
32
|
this.appearanceListener = Appearance.addChangeListener(() => {
|
|
12
33
|
if (this.currentTheme === 'system') {
|
|
13
34
|
this.notifyListeners();
|
|
@@ -30,13 +51,15 @@ export class RNThemeService {
|
|
|
30
51
|
}
|
|
31
52
|
getResolvedTheme() {
|
|
32
53
|
if (this.currentTheme === 'system') {
|
|
33
|
-
const
|
|
54
|
+
const Appearance = getAppearance();
|
|
55
|
+
const systemTheme = Appearance?.getColorScheme() ?? 'light';
|
|
34
56
|
return systemTheme === 'dark' ? 'dark' : 'light';
|
|
35
57
|
}
|
|
36
58
|
return this.currentTheme;
|
|
37
59
|
}
|
|
38
60
|
getSystemTheme() {
|
|
39
|
-
|
|
61
|
+
const Appearance = getAppearance();
|
|
62
|
+
return Appearance?.getColorScheme() ?? 'light';
|
|
40
63
|
}
|
|
41
64
|
getCurrentFontSize() {
|
|
42
65
|
return this.currentFontSize;
|
|
@@ -52,6 +75,7 @@ export class RNThemeService {
|
|
|
52
75
|
}
|
|
53
76
|
}
|
|
54
77
|
watchSystemTheme(callback) {
|
|
78
|
+
this.ensureInitialized();
|
|
55
79
|
this.listeners.add(callback);
|
|
56
80
|
return () => {
|
|
57
81
|
this.listeners.delete(callback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.rn.js","sourceRoot":"","sources":["../../src/theme/theme.rn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"theme.rn.js","sourceRoot":"","sources":["../../src/theme/theme.rn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sudobility/di_rn",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "React Native implementations of dependency injection services for Sudobility",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"react-native": "./dist/index.js",
|
|
10
12
|
"import": "./dist/index.js",
|
|
11
|
-
"
|
|
13
|
+
"require": "./dist/index.js",
|
|
14
|
+
"default": "./dist/index.js"
|
|
12
15
|
}
|
|
13
16
|
},
|
|
14
17
|
"scripts": {
|