react-native-rook-sdk 0.6.2 → 1.0.0-rc.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/android/src/main/AndroidManifestNew.xml +0 -8
- package/android/src/main/java/com/rooksdk/RookSdkModule.kt +94 -580
- package/android/src/main/java/com/rooksdk/RookSdkPackage.kt +17 -1
- package/android/src/main/java/com/rooksdk/broadcasts/AndroidPermissionsReceiverTransmitter.kt +54 -0
- package/android/src/main/java/com/rooksdk/broadcasts/HealthConnectPermissionsReceiverTransmitter.kt +53 -0
- package/android/src/main/java/com/rooksdk/modules/RookConfigurationModule.kt +108 -0
- package/android/src/main/java/com/rooksdk/modules/RookPermissionsModule.kt +160 -0
- package/android/src/main/java/com/rooksdk/modules/RookStepsModule.kt +105 -0
- package/android/src/main/java/com/rooksdk/modules/RookSyncModule.kt +497 -0
- package/android/src/main/java/com/rooksdk/utils/DatasourcesUtils.kt +49 -0
- package/android/src/main/java/com/rooksdk/utils/ReadableToWritable.kt +64 -0
- package/android/src/main/java/com/rooksdk/utils/RookDateTime.kt +20 -0
- package/ios/RookSdk.mm +393 -42
- package/lib/commonjs/context/RookSyncGateContext.js +12 -0
- package/lib/commonjs/context/RookSyncGateContext.js.map +1 -1
- package/lib/commonjs/context/RookSyncGateProvider.js +14 -6
- package/lib/commonjs/context/RookSyncGateProvider.js.map +1 -1
- package/lib/commonjs/context/RookSyncGateReducer.js +15 -0
- package/lib/commonjs/context/RookSyncGateReducer.js.map +1 -1
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js +26 -38
- package/lib/commonjs/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/commonjs/hooks/useRookAppleHealth.js +24 -10
- package/lib/commonjs/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/commonjs/hooks/useRookAppleHealthVariables.js +22 -4
- package/lib/commonjs/hooks/useRookAppleHealthVariables.js.map +1 -1
- package/lib/commonjs/hooks/useRookConfiguration.js +32 -16
- package/lib/commonjs/hooks/useRookConfiguration.js.map +1 -1
- package/lib/commonjs/hooks/useRookDataSources.js +30 -5
- package/lib/commonjs/hooks/useRookDataSources.js.map +1 -1
- package/lib/commonjs/hooks/useRookEvents.js +61 -57
- package/lib/commonjs/hooks/useRookEvents.js.map +1 -1
- package/lib/commonjs/hooks/useRookPermissions.js +79 -37
- package/lib/commonjs/hooks/useRookPermissions.js.map +1 -1
- package/lib/commonjs/hooks/useRookSummaries.js +23 -29
- package/lib/commonjs/hooks/useRookSummaries.js.map +1 -1
- package/lib/commonjs/index.js +20 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/modules/hook/useRookAutoSync.js +133 -27
- package/lib/commonjs/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/commonjs/modules/types/sendMessageBroadcast.js +2 -0
- package/lib/commonjs/modules/types/sendMessageBroadcast.js.map +1 -0
- package/lib/commonjs/types/PermissionsType.js +2 -0
- package/lib/commonjs/types/PermissionsType.js.map +1 -0
- package/lib/commonjs/utils/getNativeModule.js +29 -0
- package/lib/commonjs/utils/getNativeModule.js.map +1 -0
- package/lib/commonjs/utils/getRookModule.js +7 -0
- package/lib/commonjs/utils/getRookModule.js.map +1 -1
- package/lib/commonjs/utils/isModuleReady.js +6 -0
- package/lib/commonjs/utils/isModuleReady.js.map +1 -1
- package/lib/commonjs/utils/isValidDate.js +6 -0
- package/lib/commonjs/utils/isValidDate.js.map +1 -1
- package/lib/commonjs/utils/nativeModules.js +19 -0
- package/lib/commonjs/utils/nativeModules.js.map +1 -0
- package/lib/module/context/RookSyncGateContext.js +12 -0
- package/lib/module/context/RookSyncGateContext.js.map +1 -1
- package/lib/module/context/RookSyncGateProvider.js +10 -2
- package/lib/module/context/RookSyncGateProvider.js.map +1 -1
- package/lib/module/context/RookSyncGateReducer.js +15 -0
- package/lib/module/context/RookSyncGateReducer.js.map +1 -1
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js +14 -26
- package/lib/module/hooks/useRookAndroidBackgroundSteps.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealth.js +15 -2
- package/lib/module/hooks/useRookAppleHealth.js.map +1 -1
- package/lib/module/hooks/useRookAppleHealthVariables.js +20 -2
- package/lib/module/hooks/useRookAppleHealthVariables.js.map +1 -1
- package/lib/module/hooks/useRookConfiguration.js +18 -3
- package/lib/module/hooks/useRookConfiguration.js.map +1 -1
- package/lib/module/hooks/useRookDataSources.js +27 -3
- package/lib/module/hooks/useRookDataSources.js.map +1 -1
- package/lib/module/hooks/useRookEvents.js +32 -28
- package/lib/module/hooks/useRookEvents.js.map +1 -1
- package/lib/module/hooks/useRookPermissions.js +63 -22
- package/lib/module/hooks/useRookPermissions.js.map +1 -1
- package/lib/module/hooks/useRookSummaries.js +16 -22
- package/lib/module/hooks/useRookSummaries.js.map +1 -1
- package/lib/module/index.js +2 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/hook/useRookAutoSync.js +133 -28
- package/lib/module/modules/hook/useRookAutoSync.js.map +1 -1
- package/lib/module/modules/types/sendMessageBroadcast.js +2 -0
- package/lib/module/modules/types/sendMessageBroadcast.js.map +1 -0
- package/lib/module/types/PermissionsType.js +2 -0
- package/lib/module/types/PermissionsType.js.map +1 -0
- package/lib/module/utils/getNativeModule.js +23 -0
- package/lib/module/utils/getNativeModule.js.map +1 -0
- package/lib/module/utils/getRookModule.js +8 -0
- package/lib/module/utils/getRookModule.js.map +1 -1
- package/lib/module/utils/isModuleReady.js +6 -0
- package/lib/module/utils/isModuleReady.js.map +1 -1
- package/lib/module/utils/isValidDate.js +6 -0
- package/lib/module/utils/isValidDate.js.map +1 -1
- package/lib/module/utils/nativeModules.js +13 -0
- package/lib/module/utils/nativeModules.js.map +1 -0
- package/lib/typescript/src/context/RookSyncGateContext.d.ts +7 -0
- package/lib/typescript/src/context/RookSyncGateContext.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateProvider.d.ts.map +1 -1
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts +15 -0
- package/lib/typescript/src/context/RookSyncGateReducer.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts +6 -2
- package/lib/typescript/src/hooks/useRookAndroidBackgroundSteps.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealth.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts +9 -0
- package/lib/typescript/src/hooks/useRookAppleHealthVariables.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts +7 -1
- package/lib/typescript/src/hooks/useRookConfiguration.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookDataSources.d.ts +8 -1
- package/lib/typescript/src/hooks/useRookDataSources.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookEvents.d.ts +9 -1
- package/lib/typescript/src/hooks/useRookEvents.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookPermissions.d.ts +16 -3
- package/lib/typescript/src/hooks/useRookPermissions.d.ts.map +1 -1
- package/lib/typescript/src/hooks/useRookSummaries.d.ts +6 -6
- package/lib/typescript/src/hooks/useRookSummaries.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts +18 -1
- package/lib/typescript/src/modules/hook/useRookAutoSync.d.ts.map +1 -1
- package/lib/typescript/src/modules/types/sendMessageBroadcast.d.ts +6 -0
- package/lib/typescript/src/modules/types/sendMessageBroadcast.d.ts.map +1 -0
- package/lib/typescript/src/types/DataSource.d.ts +1 -0
- package/lib/typescript/src/types/DataSource.d.ts.map +1 -1
- package/lib/typescript/src/types/PermissionsType.d.ts +6 -0
- package/lib/typescript/src/types/PermissionsType.d.ts.map +1 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts +10 -0
- package/lib/typescript/src/utils/getNativeModule.d.ts.map +1 -0
- package/lib/typescript/src/utils/getRookModule.d.ts +7 -0
- package/lib/typescript/src/utils/getRookModule.d.ts.map +1 -1
- package/lib/typescript/src/utils/isModuleReady.d.ts +6 -0
- package/lib/typescript/src/utils/isModuleReady.d.ts.map +1 -1
- package/lib/typescript/src/utils/isValidDate.d.ts +6 -0
- package/lib/typescript/src/utils/isValidDate.d.ts.map +1 -1
- package/lib/typescript/src/utils/nativeModules.d.ts +14 -0
- package/lib/typescript/src/utils/nativeModules.d.ts.map +1 -0
- package/package.json +1 -1
- package/react-native-rook-sdk.podspec +1 -1
- package/android/src/main/java/com/rooksdk/HealthConnectPermissionsActivity.kt +0 -40
- package/android/src/main/java/com/rooksdk/RookDateTime.kt +0 -12
- package/android/src/main/res/layout/activity_health_connect_permissions.xml +0 -15
- package/lib/commonjs/utils/index.js +0 -69
- package/lib/commonjs/utils/index.js.map +0 -1
- package/lib/module/utils/index.js +0 -9
- package/lib/module/utils/index.js.map +0 -1
- package/lib/typescript/src/utils/index.d.ts +0 -9
- package/lib/typescript/src/utils/index.d.ts.map +0 -1
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
2
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import { isRunningOniOS } from '../utils/isRunningOniOS';
|
|
6
|
+
import nativeModules from '../utils/nativeModules';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The `useRookAppleHealthVariable` hook returns an object with a `ready` boolean and an
|
|
10
|
+
* asynchronous function `getTodaySteps` that retrieves the number of steps taken today.
|
|
11
|
+
* @returns The `useRookVariable` hook is returning an object with two properties:
|
|
12
|
+
* 1. `ready`: This property is coming from the `useRookSyncGateContext` hook and represents the state
|
|
13
|
+
* of readiness.
|
|
14
|
+
* 2. `getTodaySteps`: This property is a function that retrieves the number of steps taken today
|
|
15
|
+
* asynchronously and returns a Promise<string> representing the number of steps taken today.
|
|
16
|
+
*/
|
|
4
17
|
export const useRookAppleHealthVariables = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
18
|
+
const rookSync = useRef(getNativeModule(nativeModules.ios.MAIN));
|
|
6
19
|
const {
|
|
7
20
|
state: {
|
|
8
21
|
ready
|
|
9
22
|
}
|
|
10
23
|
} = useRookSyncGateContext();
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The function `getTodaySteps` retrieves the number of steps taken today asynchronously.
|
|
27
|
+
* @returns The function `getTodaySteps` is returning a string representing the number of steps taken today.
|
|
28
|
+
*/
|
|
11
29
|
const getTodaySteps = async () => {
|
|
12
30
|
isRunningOniOS();
|
|
13
31
|
isModuleReady(ready);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOniOS","nativeModules","useRookAppleHealthVariables","rookSync","ios","MAIN","state","ready","getTodaySteps","result","current"],"sourceRoot":"../../../src","sources":["hooks/useRookAppleHealthVariables.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,cAAc,QAAQ,yBAAyB;AACxD,OAAOC,aAAa,MAAM,wBAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EAC/C,MAAMC,QAAQ,GAAGP,MAAM,CAACE,eAAe,CAACG,aAAa,CAACG,GAAG,CAACC,IAAI,CAAC,CAAC;EAChE,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGV,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;EACE,MAAMW,aAAa,GAAG,MAAAA,CAAA,KAA2B;IAC/CR,cAAc,CAAC,CAAC;IAChBD,aAAa,CAACQ,KAAK,CAAC;IAEpB,MAAME,MAAM,GAAG,MAAMN,QAAQ,CAACO,OAAO,CAACF,aAAa,CAAC,CAAC;IACrD,OAAOC,MAAM;EACf,CAAC;EAED,OAAO;IACLF,KAAK;IACLC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,22 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
2
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
6
|
+
import { isRunningOniOS } from '../utils/isRunningOniOS';
|
|
7
|
+
import nativeModules from '../utils/nativeModules';
|
|
8
|
+
import { Platform } from 'react-native';
|
|
9
|
+
/**
|
|
10
|
+
* The `useRookConfiguration` hook provides various asynchronous methods for managing the configuration
|
|
11
|
+
* of the ROOK SDK
|
|
12
|
+
* @returns The `useRookConfiguration` function returns an object containing that allow the user to configure
|
|
13
|
+
* the SDK
|
|
14
|
+
*/
|
|
4
15
|
export const useRookConfiguration = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
16
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
17
|
+
android: () => nativeModules.android.CONFIGURATION,
|
|
18
|
+
default: () => nativeModules.ios.MAIN
|
|
19
|
+
})()));
|
|
6
20
|
const {
|
|
7
21
|
state: {
|
|
8
22
|
ready,
|
|
@@ -129,9 +143,10 @@ export const useRookConfiguration = () => {
|
|
|
129
143
|
* value.
|
|
130
144
|
*/
|
|
131
145
|
const scheduleAndroidYesterdaySync = async doOnEnd => {
|
|
146
|
+
const syncModule = getNativeModule(nativeModules.android.SYNC);
|
|
132
147
|
isRunningOnAndroid();
|
|
133
148
|
isModuleReady(ready);
|
|
134
|
-
return
|
|
149
|
+
return syncModule.scheduleYesterdaySync({
|
|
135
150
|
clientUUID,
|
|
136
151
|
clientPassword: password,
|
|
137
152
|
environment,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","isRunningOniOS","nativeModules","Platform","useRookConfiguration","rookSync","select","android","CONFIGURATION","default","ios","MAIN","state","ready","clientUUID","password","environment","dispatch","getUserID","result","current","type","userID","updateUserID","clearUserID","syncUserTimeZone","removeUserFromRook","enableAppleHealthSync","enableSync","disableAppleHealthSync","disableSync","isAppleHealthSyncEnabled","isSyncEnable","scheduleAndroidYesterdaySync","doOnEnd","syncModule","SYNC","scheduleYesterdaySync","clientPassword"],"sourceRoot":"../../../src","sources":["hooks/useRookConfiguration.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
3
|
+
import { Platform } from 'react-native';
|
|
2
4
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
5
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
6
|
+
import nativeModules from '../utils/nativeModules';
|
|
7
|
+
/**
|
|
8
|
+
* The `useRookDataSources` hook provides functionality to interact with data sources in Rook,
|
|
9
|
+
* including retrieving available data sources, presenting a connections page, and revoking user
|
|
10
|
+
* authorization for a specific data source.
|
|
11
|
+
* @returns An object is being returned from the `useRookDataSources` hook to allow the user to access to the sources API
|
|
12
|
+
*/
|
|
4
13
|
export const useRookDataSources = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
14
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
15
|
+
android: () => nativeModules.android.SYNC,
|
|
16
|
+
default: () => nativeModules.ios.MAIN
|
|
17
|
+
})()));
|
|
6
18
|
const {
|
|
7
19
|
state: {
|
|
8
20
|
ready
|
|
@@ -26,10 +38,22 @@ export const useRookDataSources = () => {
|
|
|
26
38
|
isModuleReady(ready);
|
|
27
39
|
return rookSync.current.presentDataSourceView(options);
|
|
28
40
|
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The function `revokeDataSource` revokes user authorization for the specified data source.
|
|
44
|
+
* @param {DataSourceType} type - The `type` parameter in the `revokeDataSource` function represents
|
|
45
|
+
* the type of data source that you want to revoke access to. It is of type `DataSourceType`.
|
|
46
|
+
* @returns A Promise<boolean> is being returned from the `revokeDataSource` function.
|
|
47
|
+
*/
|
|
48
|
+
const revokeDataSource = type => {
|
|
49
|
+
isModuleReady(ready);
|
|
50
|
+
return rookSync.current.revokeDataSource(type);
|
|
51
|
+
};
|
|
29
52
|
return {
|
|
30
53
|
ready,
|
|
31
54
|
getAvailableDataSources,
|
|
32
|
-
presentDataSourceView
|
|
55
|
+
presentDataSourceView,
|
|
56
|
+
revokeDataSource
|
|
33
57
|
};
|
|
34
58
|
};
|
|
35
59
|
//# sourceMappingURL=useRookDataSources.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","isModuleReady","Platform","useRookSyncGateContext","getNativeModule","nativeModules","useRookDataSources","rookSync","select","android","SYNC","default","ios","MAIN","state","ready","getAvailableDataSources","options","current","presentDataSourceView","revokeDataSource","type"],"sourceRoot":"../../../src","sources":["hooks/useRookDataSources.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,OAAOC,aAAa,MAAM,wBAAwB;AAOlD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,QAAQ,GAAGP,MAAM,CACrBI,eAAe,CACbF,QAAQ,CAACM,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMJ,aAAa,CAACI,OAAO,CAACC,IAAI;IACzCC,OAAO,EAAEA,CAAA,KAAMN,aAAa,CAACO,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EAED,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGZ,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;EACE,MAAMa,uBAAuB,GAC3BC,OAAiB,IACS;IAC1BhB,aAAa,CAACc,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACW,OAAO,CAACF,uBAAuB,CAACC,OAAO,CAAC;EAC1D,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAME,qBAAqB,GAAIF,OAAiB,IAAuB;IACrEhB,aAAa,CAACc,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACW,OAAO,CAACC,qBAAqB,CAACF,OAAO,CAAC;EACxD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAMG,gBAAgB,GAAIC,IAAoB,IAAuB;IACnEpB,aAAa,CAACc,KAAK,CAAC;IAEpB,OAAOR,QAAQ,CAACW,OAAO,CAACE,gBAAgB,CAACC,IAAI,CAAC;EAChD,CAAC;EAED,OAAO;IACLN,KAAK;IACLC,uBAAuB;IACvBG,qBAAqB;IACrBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,24 +1,33 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
2
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
3
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
4
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
5
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
6
|
+
import { isValidDate } from '../utils/isValidDate';
|
|
7
|
+
import { packageInfo } from '../utils/packageInfo';
|
|
8
|
+
import nativeModules from '../utils/nativeModules';
|
|
9
|
+
import { Platform } from 'react-native';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The `useRookEvents` hook defines multiple async functions to sync various
|
|
13
|
+
* health-related events and returns them along with a `ready` state.
|
|
14
|
+
* @returns The `useRookEvents` hook is being returned, which includes various functions for syncing
|
|
15
|
+
* different types of health events like body heart rate, physical heart rate, body oxygenation,
|
|
16
|
+
* physical oxygenation, training, temperature, blood pressure, blood glucose, and body metrics events.
|
|
17
|
+
* Each function takes a date parameter in the format YYYY-MM-DD and returns a boolean indicating if
|
|
18
|
+
* the sync was successful. Additionally,
|
|
19
|
+
*/
|
|
4
20
|
export const useRookEvents = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
21
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
22
|
+
android: () => nativeModules.android.SYNC,
|
|
23
|
+
default: () => nativeModules.ios.MAIN
|
|
24
|
+
})()));
|
|
6
25
|
const {
|
|
7
26
|
state: {
|
|
8
27
|
ready
|
|
9
28
|
}
|
|
10
29
|
} = useRookSyncGateContext();
|
|
11
30
|
|
|
12
|
-
/**
|
|
13
|
-
* The function `syncEvents` asynchronously synchronizes yesterday's events and returns a
|
|
14
|
-
* boolean indicating success.
|
|
15
|
-
* @returns A boolean value is being returned from the `syncEvents` function.
|
|
16
|
-
*/
|
|
17
|
-
const syncEvents = () => {
|
|
18
|
-
isModuleReady(ready);
|
|
19
|
-
return rookSync.current.syncYesterdayEvents();
|
|
20
|
-
};
|
|
21
|
-
|
|
22
31
|
/**
|
|
23
32
|
* The function `syncBodyHeartRateEvents` takes a date string as input, performs some checks, and
|
|
24
33
|
* then syncs body heart rate events for that date.
|
|
@@ -89,11 +98,10 @@ export const useRookEvents = () => {
|
|
|
89
98
|
* @returns The function `syncTemperatureEvents` is returning a Promise that resolves to a boolean
|
|
90
99
|
* value.
|
|
91
100
|
*/
|
|
92
|
-
const syncTemperatureEvent =
|
|
101
|
+
const syncTemperatureEvent = date => {
|
|
93
102
|
isModuleReady(ready);
|
|
94
103
|
isValidDate(date);
|
|
95
|
-
|
|
96
|
-
return result;
|
|
104
|
+
return rookSync.current.syncTemperatureEvent(date);
|
|
97
105
|
};
|
|
98
106
|
|
|
99
107
|
/**
|
|
@@ -103,7 +111,7 @@ export const useRookEvents = () => {
|
|
|
103
111
|
* @returns function `syncBloodPressureEvents` is returning a `Promise` that resolves to a boolean
|
|
104
112
|
* value.`
|
|
105
113
|
*/
|
|
106
|
-
const syncPressureEvent =
|
|
114
|
+
const syncPressureEvent = date => {
|
|
107
115
|
isModuleReady(ready);
|
|
108
116
|
isValidDate(date);
|
|
109
117
|
if (packageInfo.isAndroid) return rookSync.current.syncBloodPressureEvents(date);
|
|
@@ -118,7 +126,7 @@ export const useRookEvents = () => {
|
|
|
118
126
|
* @returns function `syncBloodGlucoseEvents` is returning a `Promise` that resolves to a boolean
|
|
119
127
|
* value.`
|
|
120
128
|
*/
|
|
121
|
-
const syncGlucoseEvent =
|
|
129
|
+
const syncGlucoseEvent = date => {
|
|
122
130
|
isModuleReady(ready);
|
|
123
131
|
isValidDate(date);
|
|
124
132
|
if (packageInfo.isAndroid) return rookSync.current.syncBloodGlucoseEvents(date);
|
|
@@ -132,11 +140,10 @@ export const useRookEvents = () => {
|
|
|
132
140
|
* @returns function `syncBodyMetricsEvents` is returning a `Promise` that resolves to a boolean
|
|
133
141
|
* value.`
|
|
134
142
|
*/
|
|
135
|
-
const syncBodyMetricsEvent =
|
|
143
|
+
const syncBodyMetricsEvent = date => {
|
|
136
144
|
isModuleReady(ready);
|
|
137
145
|
isValidDate(date);
|
|
138
|
-
|
|
139
|
-
return result;
|
|
146
|
+
return rookSync.current.syncBodyMetricsEvent(date);
|
|
140
147
|
};
|
|
141
148
|
|
|
142
149
|
/**
|
|
@@ -146,12 +153,11 @@ export const useRookEvents = () => {
|
|
|
146
153
|
* @returns The function `syncHydrationEvents` is returning a `Promise` that resolves to a boolean
|
|
147
154
|
* value.
|
|
148
155
|
*/
|
|
149
|
-
const syncHealthConnectHydrationEvents =
|
|
156
|
+
const syncHealthConnectHydrationEvents = date => {
|
|
150
157
|
isRunningOnAndroid();
|
|
151
158
|
isModuleReady(ready);
|
|
152
159
|
isValidDate(date);
|
|
153
|
-
|
|
154
|
-
return result;
|
|
160
|
+
return rookSync.current.syncHydrationEvents(date);
|
|
155
161
|
};
|
|
156
162
|
|
|
157
163
|
/**
|
|
@@ -160,12 +166,11 @@ export const useRookEvents = () => {
|
|
|
160
166
|
* particular format, such as "YYYY-MM-DD".
|
|
161
167
|
* @returns The function `syncNutritionEvents` is returning the result of the sync
|
|
162
168
|
*/
|
|
163
|
-
const syncHealthConnectNutritionEvents =
|
|
169
|
+
const syncHealthConnectNutritionEvents = date => {
|
|
164
170
|
isRunningOnAndroid();
|
|
165
171
|
isModuleReady(ready);
|
|
166
172
|
isValidDate(date);
|
|
167
|
-
|
|
168
|
-
return result;
|
|
173
|
+
return rookSync.current.syncNutritionEvents(date);
|
|
169
174
|
};
|
|
170
175
|
|
|
171
176
|
/**
|
|
@@ -173,7 +178,7 @@ export const useRookEvents = () => {
|
|
|
173
178
|
* @returns The function `syncPendingEvents` is returning the result of the
|
|
174
179
|
* call, which is a boolean value.
|
|
175
180
|
*/
|
|
176
|
-
const reSyncFailedEvents =
|
|
181
|
+
const reSyncFailedEvents = () => {
|
|
177
182
|
isModuleReady(ready);
|
|
178
183
|
if (packageInfo.isAndroid) return rookSync.current.syncPendingEvents();
|
|
179
184
|
return new Promise(resolve => {
|
|
@@ -182,7 +187,6 @@ export const useRookEvents = () => {
|
|
|
182
187
|
};
|
|
183
188
|
return {
|
|
184
189
|
ready,
|
|
185
|
-
syncEvents,
|
|
186
190
|
reSyncFailedEvents,
|
|
187
191
|
syncBodyHeartRateEvent,
|
|
188
192
|
syncPhysicalHeartRateEvent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","isValidDate","packageInfo","nativeModules","Platform","useRookEvents","rookSync","select","android","SYNC","default","ios","MAIN","state","ready","syncBodyHeartRateEvent","date","current","syncPhysicalHeartRateEvent","syncBodyOxygenationEvent","syncPhysicalOxygenationEvent","syncTrainingEvent","isAndroid","syncPhysicalEvents","syncTemperatureEvent","syncPressureEvent","syncBloodPressureEvents","syncGlucoseEvent","syncBloodGlucoseEvents","syncBodyMetricsEvent","syncHealthConnectHydrationEvents","syncHydrationEvents","syncHealthConnectNutritionEvents","syncNutritionEvents","reSyncFailedEvents","syncPendingEvents","Promise","resolve","syncBloodPressureEvent","syncBloodGlucoseEvent"],"sourceRoot":"../../../src","sources":["hooks/useRookEvents.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,kBAAkB,MAAM,6BAA6B;AAC5D,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,WAAW,QAAQ,sBAAsB;AAClD,OAAOC,aAAa,MAAM,wBAAwB;AAClD,SAASC,QAAQ,QAAQ,cAAc;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,QAAQ,GAAGV,MAAM,CACrBE,eAAe,CACbM,QAAQ,CAACG,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAML,aAAa,CAACK,OAAO,CAACC,IAAI;IACzCC,OAAO,EAAEA,CAAA,KAAMP,aAAa,CAACQ,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EAED,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGjB,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMkB,sBAAsB,GAAIC,IAAY,IAAuB;IACjEjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACF,sBAAsB,CAACC,IAAI,CAAC;EACtD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAME,0BAA0B,GAAIF,IAAY,IAAuB;IACrEjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACC,0BAA0B,CAACF,IAAI,CAAC;EAC1D,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMG,wBAAwB,GAAIH,IAAY,IAAuB;IACnEjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACE,wBAAwB,CAACH,IAAI,CAAC;EACxD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMI,4BAA4B,GAAIJ,IAAY,IAAuB;IACvEjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACG,4BAA4B,CAACJ,IAAI,CAAC;EAC5D,CAAC;EAED,MAAMK,iBAAiB,GAAIL,IAAY,IAAuB;IAC5DjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,IAAId,WAAW,CAACoB,SAAS,EAAE,OAAOhB,QAAQ,CAACW,OAAO,CAACM,kBAAkB,CAACP,IAAI,CAAC;IAE3E,OAAOV,QAAQ,CAACW,OAAO,CAACI,iBAAiB,CAACL,IAAI,CAAC;EACjD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMQ,oBAAoB,GAAIR,IAAY,IAAuB;IAC/DjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACO,oBAAoB,CAACR,IAAI,CAAC;EACpD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMS,iBAAiB,GAAIT,IAAY,IAAuB;IAC5DjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,IAAId,WAAW,CAACoB,SAAS,EACvB,OAAOhB,QAAQ,CAACW,OAAO,CAACS,uBAAuB,CAACV,IAAI,CAAC;IAEvD,OAAOV,QAAQ,CAACW,OAAO,CAACQ,iBAAiB,CAACT,IAAI,CAAC;EACjD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,MAAMW,gBAAgB,GAAIX,IAAY,IAAuB;IAC3DjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,IAAId,WAAW,CAACoB,SAAS,EACvB,OAAOhB,QAAQ,CAACW,OAAO,CAACW,sBAAsB,CAACZ,IAAI,CAAC;IAEtD,OAAOV,QAAQ,CAACW,OAAO,CAACU,gBAAgB,CAACX,IAAI,CAAC;EAChD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMa,oBAAoB,GAAIb,IAAY,IAAuB;IAC/DjB,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACY,oBAAoB,CAACb,IAAI,CAAC;EACpD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,MAAMc,gCAAgC,GAAId,IAAY,IAAuB;IAC3EhB,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACc,mBAAmB,CAACf,IAAI,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAMgB,gCAAgC,GAAIhB,IAAY,IAAuB;IAC3EhB,kBAAkB,CAAC,CAAC;IACpBD,aAAa,CAACe,KAAK,CAAC;IACpBb,WAAW,CAACe,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACgB,mBAAmB,CAACjB,IAAI,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;AACA;EACE,MAAMkB,kBAAkB,GAAGA,CAAA,KAAwB;IACjDnC,aAAa,CAACe,KAAK,CAAC;IAEpB,IAAIZ,WAAW,CAACoB,SAAS,EAAE,OAAOhB,QAAQ,CAACW,OAAO,CAACkB,iBAAiB,CAAC,CAAC;IAEtE,OAAO,IAAIC,OAAO,CAAEC,OAAO,IAAK;MAC9BA,OAAO,CAAC,IAAI,CAAC;IACf,CAAC,CAAC;EACJ,CAAC;EAED,OAAO;IACLvB,KAAK;IACLoB,kBAAkB;IAClBnB,sBAAsB;IACtBG,0BAA0B;IAC1BC,wBAAwB;IACxBC,4BAA4B;IAC5BC,iBAAiB;IACjBG,oBAAoB;IACpBc,sBAAsB,EAAEb,iBAAiB;IACzCc,qBAAqB,EAAEZ,gBAAgB;IACvCE,oBAAoB;IACpBC,gCAAgC;IAChCE;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
2
3
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
4
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
5
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
6
|
+
import isRunningOnAndroid from '../utils/isRunningOnAndroid';
|
|
7
|
+
import { isRunningOniOS } from '../utils/isRunningOniOS';
|
|
8
|
+
import { packageInfo } from '../utils/packageInfo';
|
|
9
|
+
import nativeModules from '../utils/nativeModules';
|
|
10
|
+
/**
|
|
11
|
+
* The `useRookPermissions` hook manages permissions for accessing Apple Health and Health Connect data,
|
|
12
|
+
* including requesting various types of permissions and checking their status.
|
|
13
|
+
* @returns The `useRookPermissions` hook is being returned, which provides various functions related
|
|
14
|
+
* to requesting and checking permissions for Apple Health. The hook returns an object containing the
|
|
15
|
+
* following properties and functions:
|
|
16
|
+
*/
|
|
4
17
|
export const useRookPermissions = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
18
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
19
|
+
android: () => nativeModules.android.PERMISSIONS,
|
|
20
|
+
default: () => nativeModules.ios.MAIN
|
|
21
|
+
})()));
|
|
6
22
|
const {
|
|
7
23
|
state: {
|
|
8
24
|
ready
|
|
@@ -26,12 +42,23 @@ export const useRookPermissions = () => {
|
|
|
26
42
|
* access.
|
|
27
43
|
* @returns The function `healthConnectHasPermissions` is returning a boolean`.
|
|
28
44
|
*/
|
|
29
|
-
const healthConnectHasPermissions =
|
|
45
|
+
const healthConnectHasPermissions = () => {
|
|
30
46
|
isRunningOnAndroid();
|
|
31
47
|
isModuleReady(ready);
|
|
32
48
|
return rookSync.current.checkPermissions();
|
|
33
49
|
};
|
|
34
50
|
|
|
51
|
+
/**
|
|
52
|
+
* The function `appleHealthHasPermissions` checks if the app has permissions for apple health data
|
|
53
|
+
* access.
|
|
54
|
+
* @returns The function `healthConnectHasPermissions` is returning a boolean`.
|
|
55
|
+
*/
|
|
56
|
+
const appleHealthHasPermissions = param => {
|
|
57
|
+
isRunningOniOS();
|
|
58
|
+
isModuleReady(ready);
|
|
59
|
+
return rookSync.current.checkPermissionsStatus(param ? param.type : null);
|
|
60
|
+
};
|
|
61
|
+
|
|
35
62
|
/**
|
|
36
63
|
* The function `requestAllAppleHealthPermissions` requests all permissions for apple health
|
|
37
64
|
*/
|
|
@@ -43,7 +70,7 @@ export const useRookPermissions = () => {
|
|
|
43
70
|
type: 'SET_PERMISSIONS'
|
|
44
71
|
});
|
|
45
72
|
}, 60000);
|
|
46
|
-
|
|
73
|
+
return rookSync.current.requestAllPermissions();
|
|
47
74
|
};
|
|
48
75
|
|
|
49
76
|
/**
|
|
@@ -52,10 +79,7 @@ export const useRookPermissions = () => {
|
|
|
52
79
|
const requestAllHealthConnectPermissions = async () => {
|
|
53
80
|
isRunningOnAndroid();
|
|
54
81
|
isModuleReady(ready);
|
|
55
|
-
|
|
56
|
-
type: 'SET_PERMISSIONS'
|
|
57
|
-
})).catch(() => {});
|
|
58
|
-
await rookSync.current.requestPermissions();
|
|
82
|
+
return rookSync.current.requestAllPermissions();
|
|
59
83
|
};
|
|
60
84
|
|
|
61
85
|
/**
|
|
@@ -63,17 +87,22 @@ export const useRookPermissions = () => {
|
|
|
63
87
|
*/
|
|
64
88
|
const requestAllPermissions = async () => {
|
|
65
89
|
isModuleReady(ready);
|
|
66
|
-
|
|
67
|
-
|
|
90
|
+
await rookSync.current.requestAllPermissions();
|
|
91
|
+
setTimeout(() => {
|
|
92
|
+
dispatch({
|
|
68
93
|
type: 'SET_PERMISSIONS'
|
|
69
|
-
})
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
94
|
+
});
|
|
95
|
+
}, 60000);
|
|
96
|
+
return 'REQUEST_SENT';
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* The function `openAppleHealthSettings` opens the apple health settings
|
|
101
|
+
*/
|
|
102
|
+
const openAppleHealthSettings = async () => {
|
|
103
|
+
isRunningOniOS();
|
|
104
|
+
isModuleReady(ready);
|
|
105
|
+
return rookSync.current.openAppleHealthSettings();
|
|
77
106
|
};
|
|
78
107
|
|
|
79
108
|
/**
|
|
@@ -93,30 +122,42 @@ export const useRookPermissions = () => {
|
|
|
93
122
|
const requestAndroidBackgroundPermissions = () => {
|
|
94
123
|
isRunningOnAndroid();
|
|
95
124
|
isModuleReady(ready);
|
|
96
|
-
pollingForAndroidPermissions().then(() => dispatch({
|
|
97
|
-
type: 'SET_PERMISSIONS'
|
|
98
|
-
})).catch(() => {});
|
|
99
125
|
return rookSync.current.requestAndroidBackgroundPermissions();
|
|
100
126
|
};
|
|
101
127
|
|
|
102
128
|
/**
|
|
103
129
|
* The function `hasAndroidBackgroundPermissions` checks if the app has background permissions on an
|
|
104
130
|
* Android device.
|
|
105
|
-
* @returns The function `
|
|
131
|
+
* @returns The function `hasBackgroundPermissions()` is returning a boolean indicating the status of
|
|
132
|
+
* the permissions.
|
|
106
133
|
*/
|
|
107
134
|
const hasAndroidBackgroundPermissions = () => {
|
|
108
135
|
isRunningOnAndroid();
|
|
109
136
|
isModuleReady(ready);
|
|
110
137
|
return rookSync.current.hasAndroidBackgroundPermissions();
|
|
111
138
|
};
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The function `shouldRequestPermissions` checks if permissions should be requested.
|
|
142
|
+
* @returns The function `shouldRequestPermissions` returns a `Promise` that resolves to a `boolean`
|
|
143
|
+
* value.
|
|
144
|
+
*/
|
|
145
|
+
const shouldRequestAndroidBackgroundPermissions = () => {
|
|
146
|
+
isRunningOnAndroid();
|
|
147
|
+
isModuleReady(ready);
|
|
148
|
+
return rookSync.current.shouldRequestAndroidBackgroundPermissions();
|
|
149
|
+
};
|
|
112
150
|
return {
|
|
113
151
|
ready,
|
|
152
|
+
appleHealthHasPermissions,
|
|
114
153
|
checkAvailability,
|
|
115
154
|
requestAllAppleHealthPermissions,
|
|
116
155
|
requestAllHealthConnectPermissions,
|
|
117
156
|
requestAllPermissions,
|
|
118
157
|
openHealthConnectSettings,
|
|
158
|
+
openAppleHealthSettings,
|
|
119
159
|
healthConnectHasPermissions,
|
|
160
|
+
shouldRequestAndroidBackgroundPermissions,
|
|
120
161
|
requestAndroidBackgroundPermissions,
|
|
121
162
|
hasAndroidBackgroundPermissions
|
|
122
163
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isRunningOnAndroid","isRunningOniOS","packageInfo","nativeModules","useRookPermissions","rookSync","select","android","PERMISSIONS","default","ios","MAIN","state","ready","dispatch","checkAvailability","isAndroid","current","Promise","resolve","healthConnectHasPermissions","checkPermissions","appleHealthHasPermissions","param","checkPermissionsStatus","type","requestAllAppleHealthPermissions","setTimeout","requestAllPermissions","requestAllHealthConnectPermissions","openAppleHealthSettings","openHealthConnectSettings","requestAndroidBackgroundPermissions","hasAndroidBackgroundPermissions","shouldRequestAndroidBackgroundPermissions"],"sourceRoot":"../../../src","sources":["hooks/useRookPermissions.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,33 +1,28 @@
|
|
|
1
1
|
import { useRef } from 'react';
|
|
2
|
+
import { Platform } from 'react-native';
|
|
2
3
|
import { useRookSyncGateContext } from '../context/RookSyncGateContext';
|
|
3
|
-
import
|
|
4
|
+
import getNativeModule from '../utils/getNativeModule';
|
|
5
|
+
import { isModuleReady } from '../utils/isModuleReady';
|
|
6
|
+
import { isValidDate } from '../utils/isValidDate';
|
|
7
|
+
import nativeModules from '../utils/nativeModules';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* The `useRookSummaries` hook provides methods to sync various types of summaries and handle
|
|
11
|
+
* failed syncs using a Rook module
|
|
12
|
+
* @returns The `useRookSummaries` hook returns an object with the properties and methods that allows the user to
|
|
13
|
+
* sync summaries with ROOK
|
|
14
|
+
*/
|
|
4
15
|
export const useRookSummaries = () => {
|
|
5
|
-
const rookSync = useRef(
|
|
16
|
+
const rookSync = useRef(getNativeModule(Platform.select({
|
|
17
|
+
android: () => nativeModules.android.SYNC,
|
|
18
|
+
default: () => nativeModules.ios.MAIN
|
|
19
|
+
})()));
|
|
6
20
|
const {
|
|
7
21
|
state: {
|
|
8
22
|
ready
|
|
9
23
|
}
|
|
10
24
|
} = useRookSyncGateContext();
|
|
11
25
|
|
|
12
|
-
/**
|
|
13
|
-
* Checks if in the specific date the health kit contains available data
|
|
14
|
-
* @param {'SLEEP' | 'PHYSICAL' | 'BODY'} props.type - specifies the type of summary that you want to sync
|
|
15
|
-
* @param {string} props.date - The `date` parameter is a string that represents a specific date for which
|
|
16
|
-
* the physical summary is being requested, should have the YYYY-MM-DD format.
|
|
17
|
-
* @returns
|
|
18
|
-
*/
|
|
19
|
-
const shouldSyncFor = props => {
|
|
20
|
-
isModuleReady(ready);
|
|
21
|
-
const {
|
|
22
|
-
type,
|
|
23
|
-
date
|
|
24
|
-
} = props;
|
|
25
|
-
if (!packageInfo.isAndroid) {
|
|
26
|
-
return new Promise(resolve => resolve(true));
|
|
27
|
-
}
|
|
28
|
-
return rookSync.current.shouldSyncFor(type, date);
|
|
29
|
-
};
|
|
30
|
-
|
|
31
26
|
/**
|
|
32
27
|
* The function `syncSleepSummary` sync sleep summary for the specific date.
|
|
33
28
|
* @param {string} date - The `date` parameter is a string that represents a specific date for which
|
|
@@ -74,7 +69,6 @@ export const useRookSummaries = () => {
|
|
|
74
69
|
};
|
|
75
70
|
return {
|
|
76
71
|
ready,
|
|
77
|
-
shouldSyncFor,
|
|
78
72
|
reSyncFailedSummaries,
|
|
79
73
|
syncSleepSummary,
|
|
80
74
|
syncPhysicalSummary,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useRef","useRookSyncGateContext","
|
|
1
|
+
{"version":3,"names":["useRef","Platform","useRookSyncGateContext","getNativeModule","isModuleReady","isValidDate","nativeModules","useRookSummaries","rookSync","select","android","SYNC","default","ios","MAIN","state","ready","syncSleepSummary","date","current","syncPhysicalSummary","syncBodySummary","reSyncFailedSummaries","syncPendingSummaries"],"sourceRoot":"../../../src","sources":["hooks/useRookSummaries.ts"],"mappings":"AAAA,SAASA,MAAM,QAAQ,OAAO;AAC9B,SAASC,QAAQ,QAAQ,cAAc;AACvC,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,OAAOC,eAAe,MAAM,0BAA0B;AACtD,SAASC,aAAa,QAAQ,wBAAwB;AACtD,SAASC,WAAW,QAAQ,sBAAsB;AAClD,OAAOC,aAAa,MAAM,wBAAwB;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EACpC,MAAMC,QAAQ,GAAGR,MAAM,CACrBG,eAAe,CACbF,QAAQ,CAACQ,MAAM,CAAC;IACdC,OAAO,EAAEA,CAAA,KAAMJ,aAAa,CAACI,OAAO,CAACC,IAAI;IACzCC,OAAO,EAAEA,CAAA,KAAMN,aAAa,CAACO,GAAG,CAACC;EACnC,CAAC,CAAC,CAAC,CACL,CACF,CAAC;EAED,MAAM;IACJC,KAAK,EAAE;MAAEC;IAAM;EACjB,CAAC,GAAGd,sBAAsB,CAAC,CAAC;;EAE5B;AACF;AACA;AACA;AACA;AACA;EACE,MAAMe,gBAAgB,GAAIC,IAAY,IAAuB;IAC3Dd,aAAa,CAACY,KAAK,CAAC;IACpBX,WAAW,CAACa,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACF,gBAAgB,CAACC,IAAI,CAAC;EAChD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAME,mBAAmB,GAAIF,IAAY,IAAuB;IAC9Dd,aAAa,CAACY,KAAK,CAAC;IACpBX,WAAW,CAACa,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACC,mBAAmB,CAACF,IAAI,CAAC;EACnD,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;EACE,MAAMG,eAAe,GAAIH,IAAY,IAAuB;IAC1Dd,aAAa,CAACY,KAAK,CAAC;IACpBX,WAAW,CAACa,IAAI,CAAC;IAEjB,OAAOV,QAAQ,CAACW,OAAO,CAACE,eAAe,CAACH,IAAI,CAAC;EAC/C,CAAC;;EAED;AACF;AACA;AACA;EACE,MAAMI,qBAAqB,GAAGA,CAAA,KAAwB;IACpDlB,aAAa,CAACY,KAAK,CAAC;IACpB,OAAOR,QAAQ,CAACW,OAAO,CAACI,oBAAoB,CAAC,CAAC;EAChD,CAAC;EAED,OAAO;IACLP,KAAK;IACLM,qBAAqB;IACrBL,gBAAgB;IAChBG,mBAAmB;IACnBC;EACF,CAAC;AACH,CAAC","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"names":["getRookModule"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,cAAc,WAAW;AACzB,cAAc,SAAS","ignoreList":[]}
|