react-native-rook-sdk 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +1 -1
- package/ios/RookSdk.mm +15 -14
- package/lib/commonjs/context/RookSyncGateProvider.js +14 -2
- package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -1
- package/lib/commonjs/context/RookSyncGateTypes.js +4 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +11 -0
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/commonjs/modules/hook/useRookAutoSync.js +65 -0
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -0
- package/lib/commonjs/modules/utils/errors.js +11 -0
- package/lib/commonjs/modules/utils/errors.js.map +1 -0
- package/lib/module/context/RookSyncGateProvider.js +14 -2
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateTypes.js +1 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +12 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/modules/hook/useRookAutoSync.js +57 -0
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -0
- package/lib/module/modules/utils/errors.js +5 -0
- package/lib/module/modules/utils/errors.js.map +1 -0
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts +2 -9
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts +10 -1
- package/lib/typescript/src/context/RookSyncGateTypes.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts +12 -0
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -0
- package/lib/typescript/src/modules/utils/errors.d.ts +5 -0
- package/lib/typescript/src/modules/utils/errors.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-rook-sdk.podspec +1 -1
package/android/build.gradle
CHANGED
|
@@ -90,6 +90,6 @@ dependencies {
|
|
|
90
90
|
//noinspection GradleDynamicVersion
|
|
91
91
|
implementation "com.facebook.react:react-native:+"
|
|
92
92
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
93
|
-
implementation 'com.rookmotion.android:rook-sdk:1.3.
|
|
93
|
+
implementation 'com.rookmotion.android:rook-sdk:1.3.1'
|
|
94
94
|
}
|
|
95
95
|
|
package/ios/RookSdk.mm
CHANGED
|
@@ -66,7 +66,8 @@ RCT_EXPORT_METHOD(initRook:(NSDictionary *) data
|
|
|
66
66
|
|
|
67
67
|
shared = [RookConnectConfigurationManagerObjc shared];
|
|
68
68
|
[shared setConfigurationWithClientUUID:convertToString(data[@"clientUUID"])
|
|
69
|
-
secretKey:convertToString(data[@"password"])
|
|
69
|
+
secretKey:convertToString(data[@"password"])
|
|
70
|
+
enableBackgroundSync:[RCTConvert BOOL:data[@"enableBackground"]]];
|
|
70
71
|
|
|
71
72
|
NSString *environment = convertToString(data[@"environment"]);
|
|
72
73
|
BOOL enableLogs = [RCTConvert BOOL:data[@"enableLogs"]];
|
|
@@ -518,26 +519,26 @@ RCT_EXPORT_METHOD(getTodaySteps: (RCTPromiseResolveBlock) resolve
|
|
|
518
519
|
RCT_EXPORT_METHOD(getAvailableDataSources: (RCTPromiseResolveBlock) resolve
|
|
519
520
|
reject:(RCTPromiseRejectBlock)reject) {
|
|
520
521
|
|
|
521
|
-
[sourceManager
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
522
|
+
[sourceManager getAvailableDataSourcesWithRedirectURL:nil
|
|
523
|
+
completion:^(NSArray<NSDictionary<NSString *,id> *> * _Nullable sources, NSError * _Nullable error) {
|
|
524
|
+
if (error) {
|
|
525
|
+
reject(@"event_failure", error.description, error);
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
527
528
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
529
|
+
if (sources) {
|
|
530
|
+
resolve(sources);
|
|
531
|
+
return;
|
|
532
|
+
}
|
|
533
|
+
|
|
533
534
|
resolve([NSDictionary dictionary]);
|
|
534
|
-
|
|
535
|
+
}];
|
|
535
536
|
}
|
|
536
537
|
|
|
537
538
|
RCT_EXPORT_METHOD(presentDataSourceView: (RCTPromiseResolveBlock) resolve
|
|
538
539
|
reject:(RCTPromiseRejectBlock)reject) {
|
|
539
540
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
540
|
-
[sourceManager
|
|
541
|
+
[sourceManager presentDataSourceViewWithRedirectURL:nil completion:^(BOOL succeed, NSError * _Nullable error) {
|
|
541
542
|
if (error) {
|
|
542
543
|
reject(@"event_failure", error.description, error);
|
|
543
544
|
return;
|
|
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _RookSyncGateReducer = require("./RookSyncGateReducer");
|
|
9
9
|
var _RookSyncGateContext = require("./RookSyncGateContext");
|
|
10
10
|
var _utils = require("../utils");
|
|
11
|
+
var _useRookAutoSync = require("../modules/hook/useRookAutoSync");
|
|
11
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
14
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
@@ -26,9 +27,18 @@ const RookSyncGateProvider = ({
|
|
|
26
27
|
clientUUID,
|
|
27
28
|
password,
|
|
28
29
|
children,
|
|
29
|
-
enableLogs = false
|
|
30
|
+
enableLogs = false,
|
|
31
|
+
enableBackgroundSync
|
|
30
32
|
}) => {
|
|
31
33
|
const [state, dispatch] = (0, _react.useReducer)(_RookSyncGateReducer.rookSyncGateReducer, initialState);
|
|
34
|
+
const {
|
|
35
|
+
startBackgroundServices
|
|
36
|
+
} = (0, _useRookAutoSync.useRookAutoSync)({
|
|
37
|
+
clientUUID,
|
|
38
|
+
password,
|
|
39
|
+
environment,
|
|
40
|
+
enableBackground: enableBackgroundSync
|
|
41
|
+
});
|
|
32
42
|
(0, _react.useEffect)(() => {
|
|
33
43
|
initModule();
|
|
34
44
|
}, [environment, clientUUID, password]);
|
|
@@ -51,8 +61,10 @@ const RookSyncGateProvider = ({
|
|
|
51
61
|
environment: _utils.packageInfo.debug ? 'development' : environment,
|
|
52
62
|
clientUUID: _utils.packageInfo.debug ? _utils.credentials.uuid : clientUUID,
|
|
53
63
|
password: _utils.packageInfo.debug ? _utils.credentials.pdw : password,
|
|
54
|
-
enableLogs
|
|
64
|
+
enableLogs,
|
|
65
|
+
enableBackground: enableBackgroundSync
|
|
55
66
|
});
|
|
67
|
+
if (enableBackgroundSync) startBackgroundServices();
|
|
56
68
|
dispatch({
|
|
57
69
|
type: 'SET_READY',
|
|
58
70
|
ready: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_RookSyncGateReducer","_RookSyncGateContext","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initialState","clientUUID","environment","password","ready","userID","RookSyncGateProvider","children","enableLogs","state","dispatch","useReducer","rookSyncGateReducer","useEffect","initModule","type","rookSyncModule","getRookModule","initRook","packageInfo","debug","credentials","uuid","pdw","error","console","log","createElement","RookSyncGateContext","Provider","value","_default","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_RookSyncGateReducer","_RookSyncGateContext","_utils","_useRookAutoSync","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","initialState","clientUUID","environment","password","ready","userID","RookSyncGateProvider","children","enableLogs","enableBackgroundSync","state","dispatch","useReducer","rookSyncGateReducer","startBackgroundServices","useRookAutoSync","enableBackground","useEffect","initModule","type","rookSyncModule","getRookModule","initRook","packageInfo","debug","credentials","uuid","pdw","error","console","log","createElement","RookSyncGateContext","Provider","value","_default","exports"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,6 +14,17 @@ const useRookAndroidBackgroundSteps = () => {
|
|
|
14
14
|
ready
|
|
15
15
|
}
|
|
16
16
|
} = (0, _RookSyncGateContext.useRookSyncGateContext)();
|
|
17
|
+
const startServices = (0, _react.useCallback)(async () => {
|
|
18
|
+
try {
|
|
19
|
+
if (!ready) return;
|
|
20
|
+
const hasPermissions = await rookSync.current.hasStepsPermissions();
|
|
21
|
+
const isAlreadyStarted = await rookSync.current.isBackgroundAndroidStepsActive();
|
|
22
|
+
if (hasPermissions && !isAlreadyStarted) await rookSync.current.enableBackgroundAndroidSteps();
|
|
23
|
+
} catch (error) {}
|
|
24
|
+
}, [ready]);
|
|
25
|
+
(0, _react.useEffect)(() => {
|
|
26
|
+
startServices();
|
|
27
|
+
}, [ready, startServices]);
|
|
17
28
|
|
|
18
29
|
/**
|
|
19
30
|
* The function `isStepsAvailable` checks if steps data is available.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookAndroidBackgroundSteps","rookSync","useRef","getRookModule","state","ready","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["_react","require","_RookSyncGateContext","_utils","useRookAndroidBackgroundSteps","rookSync","useRef","getRookModule","state","ready","useRookSyncGateContext","startServices","useCallback","hasPermissions","current","hasStepsPermissions","isAlreadyStarted","isBackgroundAndroidStepsActive","enableBackgroundAndroidSteps","error","useEffect","isStepsAvailable","isRunningOnAndroid","isModuleReady","requestStepsPermissions","disableBackgroundAndroidSteps","syncTodayAndroidStepsCount","syncTodayHealthConnectStepsCount","exports"],"sourceRoot":"../../../src","sources":["hooks/useRookAndroidBackgroundSteps.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useRookAutoSync = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _errors = require("../utils/errors");
|
|
10
|
+
var _utils = require("../../utils");
|
|
11
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
12
|
+
|
|
13
|
+
const useRookAutoSync = props => {
|
|
14
|
+
const appState = (0, _react.useRef)(_reactNative.AppState.currentState);
|
|
15
|
+
(0, _react.useEffect)(() => {
|
|
16
|
+
if (!props.enableBackground) return;
|
|
17
|
+
const subscription = _reactNative.AppState.addEventListener('change', nextAppState => {
|
|
18
|
+
if (
|
|
19
|
+
// Check previous state to check if he app was inactive or in background
|
|
20
|
+
// and then pass to be active
|
|
21
|
+
appState.current.match(/inactive|background/) && nextAppState === 'active') {
|
|
22
|
+
startBackgroundServices();
|
|
23
|
+
}
|
|
24
|
+
appState.current = nextAppState;
|
|
25
|
+
});
|
|
26
|
+
return () => {
|
|
27
|
+
subscription.remove();
|
|
28
|
+
};
|
|
29
|
+
}, []);
|
|
30
|
+
const startBackgroundServices = () => {
|
|
31
|
+
if (_reactNative.Platform.OS === 'android') startAndroidBackgroundSync();else startIOSBackgroundSync();
|
|
32
|
+
};
|
|
33
|
+
const startAndroidBackgroundSync = async () => {
|
|
34
|
+
try {
|
|
35
|
+
const rookSyncModule = (0, _utils.getRookModule)();
|
|
36
|
+
const hasHCPermissions = await rookSyncModule.checkPermissions();
|
|
37
|
+
const hasAndroidPermissions = await rookSyncModule.hasAndroidBackgroundPermissions();
|
|
38
|
+
if (hasHCPermissions && hasAndroidPermissions) {
|
|
39
|
+
await rookSyncModule.scheduleYesterdaySync({
|
|
40
|
+
clientUUID: props.clientUUID,
|
|
41
|
+
clientPassword: props.password,
|
|
42
|
+
environment: props.environment,
|
|
43
|
+
doOnEnd: 'latest'
|
|
44
|
+
});
|
|
45
|
+
console.log('Background enabled successfully');
|
|
46
|
+
} else throw new Error(_errors.errors.autoStartAndroidBackgroundSync);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
console.log(error);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const startIOSBackgroundSync = async () => {
|
|
52
|
+
try {
|
|
53
|
+
const rookSyncModule = (0, _utils.getRookModule)();
|
|
54
|
+
await rookSyncModule.getTodaySteps();
|
|
55
|
+
console.log('Background enabled successfully');
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.log(_errors.errors.autoStartIOSBackgroundSync);
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
return {
|
|
61
|
+
startBackgroundServices
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
exports.useRookAutoSync = useRookAutoSync;
|
|
65
|
+
//# sourceMappingURL=useRookAutoSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_errors","_utils","useRookAutoSync","props","appState","useRef","AppState","currentState","useEffect","enableBackground","subscription","addEventListener","nextAppState","current","match","startBackgroundServices","remove","Platform","OS","startAndroidBackgroundSync","startIOSBackgroundSync","rookSyncModule","getRookModule","hasHCPermissions","checkPermissions","hasAndroidPermissions","hasAndroidBackgroundPermissions","scheduleYesterdaySync","clientUUID","clientPassword","password","environment","doOnEnd","console","log","Error","errors","autoStartAndroidBackgroundSync","error","getTodaySteps","autoStartIOSBackgroundSync","exports"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookAutoSync.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AALA;;AAcO,MAAMI,eAAe,GAAIC,KAA0B,IAAK;EAC7D,MAAMC,QAAQ,GAAG,IAAAC,aAAM,EAACC,qBAAQ,CAACC,YAAY,CAAC;EAE9C,IAAAC,gBAAS,EAAC,MAAM;IACd,IAAI,CAACL,KAAK,CAACM,gBAAgB,EAAE;IAE7B,MAAMC,YAAY,GAAGJ,qBAAQ,CAACK,gBAAgB,CAAC,QAAQ,EAAGC,YAAY,IAAK;MACzE;MACE;MACA;MACAR,QAAQ,CAACS,OAAO,CAACC,KAAK,CAAC,qBAAqB,CAAC,IAC7CF,YAAY,KAAK,QAAQ,EACzB;QACAG,uBAAuB,CAAC,CAAC;MAC3B;MAEAX,QAAQ,CAACS,OAAO,GAAGD,YAAY;IACjC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,YAAY,CAACM,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMD,uBAAuB,GAAGA,CAAA,KAAM;IACpC,IAAIE,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAEC,0BAA0B,CAAC,CAAC,CAAC,KACvDC,sBAAsB,CAAC,CAAC;EAC/B,CAAC;EAED,MAAMD,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7C,IAAI;MACF,MAAME,cAAc,GAAG,IAAAC,oBAAa,EAAC,CAAC;MACtC,MAAMC,gBAAgB,GAAG,MAAMF,cAAc,CAACG,gBAAgB,CAAC,CAAC;MAChE,MAAMC,qBAAqB,GACzB,MAAMJ,cAAc,CAACK,+BAA+B,CAAC,CAAC;MAExD,IAAIH,gBAAgB,IAAIE,qBAAqB,EAAE;QAC7C,MAAMJ,cAAc,CAACM,qBAAqB,CAAC;UACzCC,UAAU,EAAEzB,KAAK,CAACyB,UAAU;UAC5BC,cAAc,EAAE1B,KAAK,CAAC2B,QAAQ;UAC9BC,WAAW,EAAE5B,KAAK,CAAC4B,WAAW;UAC9BC,OAAO,EAAE;QACX,CAAC,CAAC;QAEFC,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;MAChD,CAAC,MAAM,MAAM,IAAIC,KAAK,CAACC,cAAM,CAACC,8BAA8B,CAAC;IAC/D,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdL,OAAO,CAACC,GAAG,CAACI,KAAK,CAAC;IACpB;EACF,CAAC;EAED,MAAMlB,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IACzC,IAAI;MACF,MAAMC,cAAc,GAAG,IAAAC,oBAAa,EAAC,CAAC;MACtC,MAAMD,cAAc,CAACkB,aAAa,CAAC,CAAC;MAEpCN,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;IAChD,CAAC,CAAC,OAAOI,KAAK,EAAE;MACdL,OAAO,CAACC,GAAG,CAACE,cAAM,CAACI,0BAA0B,CAAC;IAChD;EACF,CAAC;EAED,OAAO;IACLzB;EACF,CAAC;AACH,CAAC;AAAC0B,OAAA,CAAAvC,eAAA,GAAAA,eAAA","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.errors = void 0;
|
|
7
|
+
const errors = exports.errors = {
|
|
8
|
+
autoStartAndroidBackgroundSync: 'We try to start the background sync but some permissions are missing on android, please grant permissions on health connect and android permissions, https://docs.tryrook.io/docs/rookconnect/sdk/reactnative/fundamentals/grantpermissons/#request-permissions',
|
|
9
|
+
autoStartIOSBackgroundSync: 'We try to start the background sync but some permissions are missing, please grant permissions, https://docs.tryrook.io/docs/rookconnect/sdk/reactnative/fundamentals/grantpermissons/#request-permissions'
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["errors","exports","autoStartAndroidBackgroundSync","autoStartIOSBackgroundSync"],"sourceRoot":"../../../../src","sources":["modules/utils/errors.ts"],"mappings":";;;;;;AAAO,MAAMA,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACpBE,8BAA8B,EAC5B,iQAAiQ;EAEnQC,0BAA0B,EACxB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -4,6 +4,7 @@ import { rookSyncGateReducer } from './RookSyncGateReducer'; // Importa el reduc
|
|
|
4
4
|
|
|
5
5
|
import { RookSyncGateContext } from './RookSyncGateContext';
|
|
6
6
|
import { credentials, getRookModule, packageInfo } from '../utils';
|
|
7
|
+
import { useRookAutoSync } from '../modules/hook/useRookAutoSync';
|
|
7
8
|
const initialState = {
|
|
8
9
|
clientUUID: '',
|
|
9
10
|
environment: 'sandbox',
|
|
@@ -16,9 +17,18 @@ const RookSyncGateProvider = ({
|
|
|
16
17
|
clientUUID,
|
|
17
18
|
password,
|
|
18
19
|
children,
|
|
19
|
-
enableLogs = false
|
|
20
|
+
enableLogs = false,
|
|
21
|
+
enableBackgroundSync
|
|
20
22
|
}) => {
|
|
21
23
|
const [state, dispatch] = useReducer(rookSyncGateReducer, initialState);
|
|
24
|
+
const {
|
|
25
|
+
startBackgroundServices
|
|
26
|
+
} = useRookAutoSync({
|
|
27
|
+
clientUUID,
|
|
28
|
+
password,
|
|
29
|
+
environment,
|
|
30
|
+
enableBackground: enableBackgroundSync
|
|
31
|
+
});
|
|
22
32
|
useEffect(() => {
|
|
23
33
|
initModule();
|
|
24
34
|
}, [environment, clientUUID, password]);
|
|
@@ -41,8 +51,10 @@ const RookSyncGateProvider = ({
|
|
|
41
51
|
environment: packageInfo.debug ? 'development' : environment,
|
|
42
52
|
clientUUID: packageInfo.debug ? credentials.uuid : clientUUID,
|
|
43
53
|
password: packageInfo.debug ? credentials.pdw : password,
|
|
44
|
-
enableLogs
|
|
54
|
+
enableLogs,
|
|
55
|
+
enableBackground: enableBackgroundSync
|
|
45
56
|
});
|
|
57
|
+
if (enableBackgroundSync) startBackgroundServices();
|
|
46
58
|
dispatch({
|
|
47
59
|
type: 'SET_READY',
|
|
48
60
|
ready: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useReducer","useEffect","rookSyncGateReducer","RookSyncGateContext","credentials","getRookModule","packageInfo","initialState","clientUUID","environment","password","ready","userID","RookSyncGateProvider","children","enableLogs","state","dispatch","initModule","type","rookSyncModule","initRook","debug","uuid","pdw","error","console","log","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":"AAAA;AACA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useReducer","useEffect","rookSyncGateReducer","RookSyncGateContext","credentials","getRookModule","packageInfo","useRookAutoSync","initialState","clientUUID","environment","password","ready","userID","RookSyncGateProvider","children","enableLogs","enableBackgroundSync","state","dispatch","startBackgroundServices","enableBackground","initModule","type","rookSyncModule","initRook","debug","uuid","pdw","error","console","log","createElement","Provider","value"],"sourceRoot":"../../../src","sources":["context/RookSyncGateProvider.tsx"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAWC,SAAS,QAAQ,OAAO;AAC7D,SAASC,mBAAmB,QAAQ,uBAAuB,CAAC,CAAC;;AAK7D,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,WAAW,EAAEC,aAAa,EAAEC,WAAW,QAAQ,UAAU;AAClE,SAASC,eAAe,QAAQ,iCAAiC;AAEjE,MAAMC,YAA+B,GAAG;EACtCC,UAAU,EAAE,EAAE;EACdC,WAAW,EAAE,SAAS;EACtBC,QAAQ,EAAE,EAAE;EACZC,KAAK,EAAE,KAAK;EACZC,MAAM,EAAE;AACV,CAAC;AAED,MAAMC,oBAAmD,GAAGA,CAAC;EAC3DJ,WAAW;EACXD,UAAU;EACVE,QAAQ;EACRI,QAAQ;EACRC,UAAU,GAAG,KAAK;EAClBC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGnB,UAAU,CAACE,mBAAmB,EAAEM,YAAY,CAAC;EAEvE,MAAM;IAAEY;EAAwB,CAAC,GAAGb,eAAe,CAAC;IAClDE,UAAU;IACVE,QAAQ;IACRD,WAAW;IACXW,gBAAgB,EAAEJ;EACpB,CAAC,CAAC;EAEFhB,SAAS,CAAC,MAAM;IACdqB,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAACZ,WAAW,EAAED,UAAU,EAAEE,QAAQ,CAAC,CAAC;EAEvC,MAAMW,UAAU,GAAG,MAAAA,CAAA,KAA2B;IAC5CH,QAAQ,CAAC;MAAEI,IAAI,EAAE,sBAAsB;MAAEb;IAAY,CAAC,CAAC;IACvDS,QAAQ,CAAC;MAAEI,IAAI,EAAE,iBAAiB;MAAEd;IAAW,CAAC,CAAC;IACjDU,QAAQ,CAAC;MAAEI,IAAI,EAAE,cAAc;MAAEZ;IAAS,CAAC,CAAC;IAE5C,IAAI;MACF,MAAMa,cAAc,GAAGnB,aAAa,CAAC,CAAC;MAEtC,MAAMmB,cAAc,CAACC,QAAQ,CAAC;QAC5Bf,WAAW,EAAEJ,WAAW,CAACoB,KAAK,GAAG,aAAa,GAAGhB,WAAW;QAC5DD,UAAU,EAAEH,WAAW,CAACoB,KAAK,GAAGtB,WAAW,CAACuB,IAAI,GAAGlB,UAAU;QAC7DE,QAAQ,EAAEL,WAAW,CAACoB,KAAK,GAAGtB,WAAW,CAACwB,GAAG,GAAGjB,QAAQ;QACxDK,UAAU;QACVK,gBAAgB,EAAEJ;MACpB,CAAC,CAAC;MAEF,IAAIA,oBAAoB,EAAEG,uBAAuB,CAAC,CAAC;MAEnDD,QAAQ,CAAC;QAAEI,IAAI,EAAE,WAAW;QAAEX,KAAK,EAAE;MAAK,CAAC,CAAC;IAC9C,CAAC,CAAC,OAAOiB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAACF,KAAK,CAAC;IACpB;EACF,CAAC;EAED,oBACE9B,KAAA,CAAAiC,aAAA,CAAC7B,mBAAmB,CAAC8B,QAAQ;IAACC,KAAK,EAAE;MAAEhB,KAAK;MAAEC;IAAS;EAAE,GACtDJ,QAC2B,CAAC;AAEnC,CAAC;AAED,eAAeD,oBAAoB","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=RookSyncGateTypes.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useRef } from 'react';
|
|
1
|
+
import { useEffect, useRef, useCallback } from 'react';
|
|
2
2
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
3
|
import { getRookModule, isModuleReady, isRunningOnAndroid } from '../utils';
|
|
4
4
|
export const useRookAndroidBackgroundSteps = () => {
|
|
@@ -8,6 +8,17 @@ export const useRookAndroidBackgroundSteps = () => {
|
|
|
8
8
|
ready
|
|
9
9
|
}
|
|
10
10
|
} = useRookSyncGateContext();
|
|
11
|
+
const startServices = useCallback(async () => {
|
|
12
|
+
try {
|
|
13
|
+
if (!ready) return;
|
|
14
|
+
const hasPermissions = await rookSync.current.hasStepsPermissions();
|
|
15
|
+
const isAlreadyStarted = await rookSync.current.isBackgroundAndroidStepsActive();
|
|
16
|
+
if (hasPermissions && !isAlreadyStarted) await rookSync.current.enableBackgroundAndroidSteps();
|
|
17
|
+
} catch (error) {}
|
|
18
|
+
}, [ready]);
|
|
19
|
+
useEffect(() => {
|
|
20
|
+
startServices();
|
|
21
|
+
}, [ready, startServices]);
|
|
11
22
|
|
|
12
23
|
/**
|
|
13
24
|
* The function `isStepsAvailable` checks if steps data is available.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","getRookModule","isModuleReady","isRunningOnAndroid","useRookAndroidBackgroundSteps","rookSync","state","ready","
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","useCallback","useRookSyncGateContext","getRookModule","isModuleReady","isRunningOnAndroid","useRookAndroidBackgroundSteps","rookSync","state","ready","startServices","hasPermissions","current","hasStepsPermissions","isAlreadyStarted","isBackgroundAndroidStepsActive","enableBackgroundAndroidSteps","error","isStepsAvailable","requestStepsPermissions","disableBackgroundAndroidSteps","syncTodayAndroidStepsCount","syncTodayHealthConnectStepsCount"],"sourceRoot":"../../../src","sources":["hooks/useRookAndroidBackgroundSteps.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AACtD,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,aAAa,EAAEC,aAAa,EAAEC,kBAAkB,QAAQ,UAAU;AAE3E,OAAO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjD,MAAMC,QAAQ,GAAGP,MAAM,CAACG,aAAa,CAAC,CAAC,CAAC;EACxC,MAAM;IACJK,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGP,sBAAsB,CAAC,CAAC;EAE5B,MAAMQ,aAAa,GAAGT,WAAW,CAAC,YAAY;IAC5C,IAAI;MACF,IAAI,CAACQ,KAAK,EAAE;MAEZ,MAAME,cAAc,GAAG,MAAMJ,QAAQ,CAACK,OAAO,CAACC,mBAAmB,CAAC,CAAC;MACnE,MAAMC,gBAAgB,GACpB,MAAMP,QAAQ,CAACK,OAAO,CAACG,8BAA8B,CAAC,CAAC;MAEzD,IAAIJ,cAAc,IAAI,CAACG,gBAAgB,EACrC,MAAMP,QAAQ,CAACK,OAAO,CAACI,4BAA4B,CAAC,CAAC;IACzD,CAAC,CAAC,OAAOC,KAAK,EAAE,CAAC;EACnB,CAAC,EAAE,CAACR,KAAK,CAAC,CAAC;EAEXV,SAAS,CAAC,MAAM;IACdW,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,CAACD,KAAK,EAAEC,aAAa,CAAC,CAAC;;EAE1B;AACF;AACA;AACA;EACE,MAAMQ,gBAAgB,GAAG,MAAAA,CAAA,KAA8B;IACrDb,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACM,gBAAgB,CAAC,CAAC;EAC5C,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAML,mBAAmB,GAAG,MAAAA,CAAA,KAA8B;IACxDR,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACC,mBAAmB,CAAC,CAAC;EAC/C,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMM,uBAAuB,GAAGA,CAAA,KAAwB;IACtDd,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACO,uBAAuB,CAAC,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMH,4BAA4B,GAAG,MAAAA,CAAA,KAA8B;IACjEX,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACI,4BAA4B,CAAC,CAAC;EACxD,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMI,6BAA6B,GAAGA,CAAA,KAAwB;IAC5Df,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACQ,6BAA6B,CAAC,CAAC;EACzD,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAML,8BAA8B,GAAGA,CAAA,KAAwB;IAC7DV,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACG,8BAA8B,CAAC,CAAC;EAC1D,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMM,0BAA0B,GAAGA,CAAA,KAAuB;IACxDhB,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACS,0BAA0B,CAAC,CAAC;EACtD,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMC,gCAAgC,GAAGA,CAAA,KAAuB;IAC9DjB,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACK,KAAK,CAAC;IAEpB,OAAOF,QAAQ,CAACK,OAAO,CAACU,gCAAgC,CAAC,CAAC;EAC5D,CAAC;EAED,OAAO;IACLb,KAAK;IACLS,gBAAgB;IAChBL,mBAAmB;IACnBM,uBAAuB;IACvBH,4BAA4B;IAC5BI,6BAA6B;IAC7BL,8BAA8B;IAC9BM,0BAA0B;IAC1BC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import { AppState, Platform } from 'react-native';
|
|
4
|
+
import { errors } from '../utils/errors';
|
|
5
|
+
import { getRookModule } from '../../utils';
|
|
6
|
+
export const useRookAutoSync = props => {
|
|
7
|
+
const appState = useRef(AppState.currentState);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!props.enableBackground) return;
|
|
10
|
+
const subscription = AppState.addEventListener('change', nextAppState => {
|
|
11
|
+
if (
|
|
12
|
+
// Check previous state to check if he app was inactive or in background
|
|
13
|
+
// and then pass to be active
|
|
14
|
+
appState.current.match(/inactive|background/) && nextAppState === 'active') {
|
|
15
|
+
startBackgroundServices();
|
|
16
|
+
}
|
|
17
|
+
appState.current = nextAppState;
|
|
18
|
+
});
|
|
19
|
+
return () => {
|
|
20
|
+
subscription.remove();
|
|
21
|
+
};
|
|
22
|
+
}, []);
|
|
23
|
+
const startBackgroundServices = () => {
|
|
24
|
+
if (Platform.OS === 'android') startAndroidBackgroundSync();else startIOSBackgroundSync();
|
|
25
|
+
};
|
|
26
|
+
const startAndroidBackgroundSync = async () => {
|
|
27
|
+
try {
|
|
28
|
+
const rookSyncModule = getRookModule();
|
|
29
|
+
const hasHCPermissions = await rookSyncModule.checkPermissions();
|
|
30
|
+
const hasAndroidPermissions = await rookSyncModule.hasAndroidBackgroundPermissions();
|
|
31
|
+
if (hasHCPermissions && hasAndroidPermissions) {
|
|
32
|
+
await rookSyncModule.scheduleYesterdaySync({
|
|
33
|
+
clientUUID: props.clientUUID,
|
|
34
|
+
clientPassword: props.password,
|
|
35
|
+
environment: props.environment,
|
|
36
|
+
doOnEnd: 'latest'
|
|
37
|
+
});
|
|
38
|
+
console.log('Background enabled successfully');
|
|
39
|
+
} else throw new Error(errors.autoStartAndroidBackgroundSync);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.log(error);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const startIOSBackgroundSync = async () => {
|
|
45
|
+
try {
|
|
46
|
+
const rookSyncModule = getRookModule();
|
|
47
|
+
await rookSyncModule.getTodaySteps();
|
|
48
|
+
console.log('Background enabled successfully');
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.log(errors.autoStartIOSBackgroundSync);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
startBackgroundServices
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=useRookAutoSync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","AppState","Platform","errors","getRookModule","useRookAutoSync","props","appState","currentState","enableBackground","subscription","addEventListener","nextAppState","current","match","startBackgroundServices","remove","OS","startAndroidBackgroundSync","startIOSBackgroundSync","rookSyncModule","hasHCPermissions","checkPermissions","hasAndroidPermissions","hasAndroidBackgroundPermissions","scheduleYesterdaySync","clientUUID","clientPassword","password","environment","doOnEnd","console","log","Error","autoStartAndroidBackgroundSync","error","getTodaySteps","autoStartIOSBackgroundSync"],"sourceRoot":"../../../../src","sources":["modules/hook/useRookAutoSync.ts"],"mappings":"AAAA;AACA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,EAAEC,QAAQ,QAAQ,cAAc;AAEjD,SAASC,MAAM,QAAQ,iBAAiB;AACxC,SAASC,aAAa,QAAQ,aAAa;AAS3C,OAAO,MAAMC,eAAe,GAAIC,KAA0B,IAAK;EAC7D,MAAMC,QAAQ,GAAGP,MAAM,CAACC,QAAQ,CAACO,YAAY,CAAC;EAE9CT,SAAS,CAAC,MAAM;IACd,IAAI,CAACO,KAAK,CAACG,gBAAgB,EAAE;IAE7B,MAAMC,YAAY,GAAGT,QAAQ,CAACU,gBAAgB,CAAC,QAAQ,EAAGC,YAAY,IAAK;MACzE;MACE;MACA;MACAL,QAAQ,CAACM,OAAO,CAACC,KAAK,CAAC,qBAAqB,CAAC,IAC7CF,YAAY,KAAK,QAAQ,EACzB;QACAG,uBAAuB,CAAC,CAAC;MAC3B;MAEAR,QAAQ,CAACM,OAAO,GAAGD,YAAY;IACjC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXF,YAAY,CAACM,MAAM,CAAC,CAAC;IACvB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMD,uBAAuB,GAAGA,CAAA,KAAM;IACpC,IAAIb,QAAQ,CAACe,EAAE,KAAK,SAAS,EAAEC,0BAA0B,CAAC,CAAC,CAAC,KACvDC,sBAAsB,CAAC,CAAC;EAC/B,CAAC;EAED,MAAMD,0BAA0B,GAAG,MAAAA,CAAA,KAAY;IAC7C,IAAI;MACF,MAAME,cAAc,GAAGhB,aAAa,CAAC,CAAC;MACtC,MAAMiB,gBAAgB,GAAG,MAAMD,cAAc,CAACE,gBAAgB,CAAC,CAAC;MAChE,MAAMC,qBAAqB,GACzB,MAAMH,cAAc,CAACI,+BAA+B,CAAC,CAAC;MAExD,IAAIH,gBAAgB,IAAIE,qBAAqB,EAAE;QAC7C,MAAMH,cAAc,CAACK,qBAAqB,CAAC;UACzCC,UAAU,EAAEpB,KAAK,CAACoB,UAAU;UAC5BC,cAAc,EAAErB,KAAK,CAACsB,QAAQ;UAC9BC,WAAW,EAAEvB,KAAK,CAACuB,WAAW;UAC9BC,OAAO,EAAE;QACX,CAAC,CAAC;QAEFC,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;MAChD,CAAC,MAAM,MAAM,IAAIC,KAAK,CAAC9B,MAAM,CAAC+B,8BAA8B,CAAC;IAC/D,CAAC,CAAC,OAAOC,KAAK,EAAE;MACdJ,OAAO,CAACC,GAAG,CAACG,KAAK,CAAC;IACpB;EACF,CAAC;EAED,MAAMhB,sBAAsB,GAAG,MAAAA,CAAA,KAAY;IACzC,IAAI;MACF,MAAMC,cAAc,GAAGhB,aAAa,CAAC,CAAC;MACtC,MAAMgB,cAAc,CAACgB,aAAa,CAAC,CAAC;MAEpCL,OAAO,CAACC,GAAG,CAAC,iCAAiC,CAAC;IAChD,CAAC,CAAC,OAAOG,KAAK,EAAE;MACdJ,OAAO,CAACC,GAAG,CAAC7B,MAAM,CAACkC,0BAA0B,CAAC;IAChD;EACF,CAAC;EAED,OAAO;IACLtB;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export const errors = {
|
|
2
|
+
autoStartAndroidBackgroundSync: 'We try to start the background sync but some permissions are missing on android, please grant permissions on health connect and android permissions, https://docs.tryrook.io/docs/rookconnect/sdk/reactnative/fundamentals/grantpermissons/#request-permissions',
|
|
3
|
+
autoStartIOSBackgroundSync: 'We try to start the background sync but some permissions are missing, please grant permissions, https://docs.tryrook.io/docs/rookconnect/sdk/reactnative/fundamentals/grantpermissons/#request-permissions'
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["errors","autoStartAndroidBackgroundSync","autoStartIOSBackgroundSync"],"sourceRoot":"../../../../src","sources":["modules/utils/errors.ts"],"mappings":"AAAA,OAAO,MAAMA,MAAM,GAAG;EACpBC,8BAA8B,EAC5B,iQAAiQ;EAEnQC,0BAA0B,EACxB;AACJ,CAAC","ignoreList":[]}
|
|
@@ -1,12 +1,5 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import type {
|
|
3
|
-
type RookSyncGateProviderProps = {
|
|
4
|
-
children: ReactNode;
|
|
5
|
-
environment: Environment;
|
|
6
|
-
clientUUID: string;
|
|
7
|
-
password: string;
|
|
8
|
-
enableLogs?: boolean;
|
|
9
|
-
};
|
|
1
|
+
import { type FC } from 'react';
|
|
2
|
+
import type { RookSyncGateProviderProps } from './RookSyncGateTypes';
|
|
10
3
|
declare const RookSyncGateProvider: FC<RookSyncGateProviderProps>;
|
|
11
4
|
export default RookSyncGateProvider;
|
|
12
5
|
//# sourceMappingURL=RookSyncGateProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RookSyncGateProvider.d.ts","sourceRoot":"","sources":["../../../../src/context/RookSyncGateProvider.tsx"],"names":[],"mappings":"AACA,OAAc,
|
|
1
|
+
{"version":3,"file":"RookSyncGateProvider.d.ts","sourceRoot":"","sources":["../../../../src/context/RookSyncGateProvider.tsx"],"names":[],"mappings":"AACA,OAAc,EAAc,KAAK,EAAE,EAAa,MAAM,OAAO,CAAC;AAE9D,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAa7B,QAAA,MAAM,oBAAoB,EAAE,EAAE,CAAC,yBAAyB,CAkDvD,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
1
2
|
export type Environment = 'sandbox' | 'production';
|
|
2
3
|
type RookSyncGateState = {
|
|
3
4
|
clientUUID: string;
|
|
@@ -22,5 +23,13 @@ type Action = {
|
|
|
22
23
|
type: 'SET_PASSWORD';
|
|
23
24
|
password: string;
|
|
24
25
|
};
|
|
25
|
-
|
|
26
|
+
type RookSyncGateProviderProps = {
|
|
27
|
+
children: ReactNode;
|
|
28
|
+
environment: Environment;
|
|
29
|
+
clientUUID: string;
|
|
30
|
+
password: string;
|
|
31
|
+
enableLogs?: boolean;
|
|
32
|
+
enableBackgroundSync: boolean;
|
|
33
|
+
};
|
|
34
|
+
export type { RookSyncGateState, Action, RookSyncGateProviderProps };
|
|
26
35
|
//# sourceMappingURL=RookSyncGateTypes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RookSyncGateTypes.d.ts","sourceRoot":"","sources":["../../../../src/context/RookSyncGateTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,MAAM,GACP;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"RookSyncGateTypes.d.ts","sourceRoot":"","sources":["../../../../src/context/RookSyncGateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,CAAC;AAEnD,KAAK,iBAAiB,GAAG;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,MAAM,GACP;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GACrC;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAC1D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE/C,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF,YAAY,EAAE,iBAAiB,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRookAndroidBackgroundSteps.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRookAndroidBackgroundSteps.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B;;
|
|
1
|
+
{"version":3,"file":"useRookAndroidBackgroundSteps.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useRookAndroidBackgroundSteps.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B;;4BA2BL,QAAQ,OAAO,CAAC;+BAWb,QAAQ,OAAO,CAAC;mCAYlB,QAAQ,OAAO,CAAC;wCAWL,QAAQ,OAAO,CAAC;yCAWrB,QAAQ,OAAO,CAAC;0CAYf,QAAQ,OAAO,CAAC;sCAWpB,QAAQ,MAAM,CAAC;4CAWT,QAAQ,MAAM,CAAC;CAkB7D,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Environment } from '../../context/RookSyncGateTypes';
|
|
2
|
+
type StartBackgroundSync = {
|
|
3
|
+
environment: Environment;
|
|
4
|
+
clientUUID: string;
|
|
5
|
+
password: string;
|
|
6
|
+
enableBackground: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const useRookAutoSync: (props: StartBackgroundSync) => {
|
|
9
|
+
startBackgroundServices: () => void;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=useRookAutoSync.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRookAutoSync.d.ts","sourceRoot":"","sources":["../../../../../src/modules/hook/useRookAutoSync.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAInE,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,eAAe,UAAW,mBAAmB;;CAiEzD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../../src/modules/utils/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;CAMlB,CAAC"}
|
package/package.json
CHANGED
|
@@ -16,7 +16,7 @@ Pod::Spec.new do |s|
|
|
|
16
16
|
|
|
17
17
|
s.source_files = "ios/**/*.{h,m,mm}"
|
|
18
18
|
|
|
19
|
-
s.dependency "RookSDK", "1.5.
|
|
19
|
+
s.dependency "RookSDK", "1.5.3"
|
|
20
20
|
|
|
21
21
|
# Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
|
|
22
22
|
# See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
|